å»ã 9 æ 20 æ¥ï¼åï¼ã«ãç¬¬å «å #æ¸è°·java ã¨ããã¤ãã³ã㧠LT ãã¦ãã¾ãããï¼第八回 #渋谷java でスレッドダンプについてお話ししました - この国では犬がï¼
ãã¨ãã¨èªåã§åç §ããããã¹ã¬ãããã³ããç¥ããªã人ã«è¦ããããããå 容ã§ãããã®ã§ãããã°ã¨ãã¦ã¾ã¨ãã¦ããã¾ãã
ã¹ã¬ãããã³ãã¨ã¯ãªã«ã
ã¹ã¬ãããã³ãã¯ãã²ã¨ãã¨ã§è¨ãã¨ãJava ã®ã¹ã¬ããã®ã¹ãããã·ã§ãããã¨ãããã¨ã«ãªãã¾ãã
ã¹ã¬ãããã³ããåå¾ãããã¨ã§ãåå¾ããç¬éã« JVM ä¸ã§ã©ã®ãããªå¦çãå®è¡ããã¦ããã®ããä¸è¦§ãã¦ã調æ»ãããã¨ãã§ãã¾ãã
å
·ä½çã«ã¯ããã®ç¬éã«åå¨ãã¦ããåã¹ã¬ããã®ååãç¶æ
ãã¹ã¿ãã¯ãã¬ã¼ã¹çãè¦ããã¨ãã§ãã¾ãã
ã¹ã¬ãããã³ãã¯ãªãã®å½¹ã«ç«ã¤ã®ã
ããã°ã©ã ãé ãã¨ãã»ããªã¼ãºããã¨ã
ä¸ã¤ã«ã¯ãããã°ã©ã ãé ãã¨ãã»ããªã¼ãºããã¨ãã®åå 調æ»ã«å½¹ç«ã¡ã¾ãã
ããã°ã©ã ãé
ãã¨ãã»ããªã¼ãºããã¨ãã«ã¹ã¬ãããã³ããåå¾ããã°ãåã¹ã¬ããã®ç¶æ
ããã©ã®ã¡ã½ãããå®è¡ãã¦ããã®ãããããã¾ãã
ãã©ã®ã¹ã¬ãããã©ã®ããã¯ã®è§£æ¾ãå¾
ã£ã¦ããã®ãããããåä½ãé
ãã¨ããåã¹ã¬ããã¯ã©ã®ã¡ã½ãããå®è¡ãã¦ããã®ããã調æ»ã§ããããã§ãã
ããã°ã©ã ããããªã¼ãºããã¦ãã¦ãï¼ã¦ã¼ã¶ã®å
¥åã«å¿çããªãã¦ãï¼ãã¹ã¬ãããã³ããåå¾ã§ããã®ã¯ããã®ãããªå ´åã§ã JVM ã¯ãæ£å¸¸ã«åä½ããã¦ããããã§ãã
Java ã®ããã°ã©ã 㯠JVM ä¸ã§å®è¡ããã¾ãããã£ã¦ãJVM ä¸ã§åä½ãã¦ããããã°ã©ã ããåæ¢ããã¦ãããããªç¶æ
ï¼ãã¨ãã°ããããããã¯ãçºçãã¦ããããç¡éã«ã¼ãã«é¥ã£ã¦ããããããã¾ããï¼ã§ãããããæ¯ãã JVM ã¯åæ¢ãªã©ãã¦ããªãããã§ãã*1
ããã°ã©ã ãã¯ã©ãã·ã¥ããã¨ã
次ã«ãããã°ã©ã ãã¯ã©ãã·ã¥ããã¨ãã®åå 調æ»ã«ãå½¹ç«ã¡ã¾ãã
ããã°ã©ã ãã¯ã©ãã·ã¥ããã¨ããJVM ã¯èªåçã«ã¹ã¬ãããã³ãããã¡ã¤ã«ã«åºåãã¾ãã
ãã®ã¹ã¬ãããã³ãã調æ»ãããã¨ã§ãåå 調æ»ã®è¶³ãããã¨ãããã¨ãã§ãã¾ãããã¨ãã°ãå°ãªãã¨ããã©ã®ã¡ã½ããã®å®è¡ä¸ã«ã¯ã©ãã·ã¥ãããããããã¾ããããã ãã§ããã¯ã©ãã·ã¥ããåå ã®èª¿æ»ã«ã¯å¤§ããªå©ãã¨ãªãã§ãããã
æ¬çªç°å¢ã§ãåå¾ã§ãã
æå¾ã«ãã¹ã¬ãããã³ãã¯æ¬çªç°å¢ã§ãåå¾ã§ãããã¨ãããã¨ãæãããã¾ãã
ãã¨ãã°ãããã°ã©ã ãé
ãåå ã調ã¹ããã£ãããhprof ã VisualVM ã®ãããªãããã¡ã¤ã«ãã¼ã«*2ã使ããã¨ããã®ãä¸çªæ¥½ãã§ããæ¹æ³ã§ãããã
ãããããããã¡ã¤ã«ãã¼ã«ã¯ããã°ã©ã èªä½ã®åä½ã«å½±é¿ãä¸ãã¦ãã¾ããããæ¬çªç°å¢ã§ã¯ä½¿ããªãå ´åãã»ã¨ãã©ã ã¨æãã¾ãã
ãã®ãããªå ´åã§ããã¹ã¬ãããã³ãã¯ããã°ã©ã ã®åä½ã«ã»ã¨ãã©*3å½±é¿ãä¸ããªãã®ã§ãåå¾ãããã¨ãå¯è½ã§ãã
Java ã®æ¬çªç°å¢ã®ãã©ãã«èª¿æ»ã§ã¯ãã¹ã¬ãããã³ãã活路ã¨ãªããã¨ãå°ãªãããããã¾ãã
ã¹ã¬ãããã³ãã®åãæ¹
åºæ¬
ã¹ã¬ãããã³ãã®åãæ¹ã«ã¤ãã¦ã¯ãå®ã¯ããªãä¸å¯§ã«èª¬æããããã¼ã¸ãæ¢ã«åå¨ãã¾ãã
ã®ã§ãã¾ãã¯ãã¡ããç´¹ä»ãã¾ãã
ãã®ã·ãªã¼ãºã§ãåºæ¬çãªåãæ¹ãLinux ã®å ´åã®æ³¨æç¹ã¨å¯¾å¦æ¹æ³ãWindows ãµã¼ãã¹ã¨ãã¦èµ·åãã¦ããå ´åã®åå¾æ¹æ³ãã¾ã§ã解説ããã¦ãã¾ãã
ãµã¼ãã¹èµ·åã§ã¯ jps + jstack
Windows ãµã¼ãã¹ã¨ãã¦èµ·åãã¦ããå ´åã«ã¯ãå ã»ã©ã®ã·ãªã¼ãºã§ç´¹ä»ããã¦ããå¤é¨ãã¼ã«ãç¨ããæ¹æ³ããããJDK ã«å«ã¾ãããã¼ã«ã§ãã jps 㨠jstack ã使ç¨ããæ¹æ³ã®æ¹ãããããããã¾ããã 以ä¸ã®ãã¼ã¸ã§ã使ãæ¹ãç°¡æ½ã«ç´¹ä»ããã¦ãã¾ãã
jps + jstack ã«ããåå¾ã¯ããã¡ãã Windows 以å¤ã®ç°å¢ã§ãå¯è½ã§ãã
ãµã¼ãã¹èµ·åã§æ¨©éããªãã¨ã㯠PsExec
jstack ã使ç¨ãã¦ãããããã»ã¹ã«ã¢ã¯ã»ã¹ã§ãã¾ãããã¨è¨ããã¦ãã¾ã£ã¦ããµã¼ãã¹èµ·åã®ã¢ããªã±ã¼ã·ã§ã³ã®ã¹ã¬ãããã³ããåå¾ã§ããªãã±ã¼ã¹ãããããã§ãã
ãã®ãããªã¨ããMicrosoft ãæä¾ãã¦ãããã¼ã«ã§ãã PsExec ã使ç¨ããæ¹æ³ãä¸è¨ãã¼ã¸ã§ç´¹ä»ããã¦ãã¾ãã
ã¡ãªã¿ã«ãã®ãã¼ã¸ã¯ããã¾åãããä¼ç¤¾ã®ã¦ã¼ã¶ã¼ãã©ã¼ã©ã ã§ãã
ã¹ã¬ãããã³ãã¯ä½åº¦ãåã
ã¹ã¬ãããã³ããåãã¨ãã¯ãããã ãéããªããä½åº¦ãåå¾ãã¾ãããã
ãããããã¨ã§ãåã¹ã¬ããã®ç¶æ
é·ç§»ã調ã¹ããã¨ãã§ãã¦ã調æ»ã®å¹
ãåºããã¾ãã
ééã¯ç¶æ³ã«ãããã¾ãããæ°ç§ãããã¨ãã£ãã¨ããã§ããããã
ãã¡ãããé·ããã¨ããªã¼ãºãã£ã±ãªãã¨ãããããªå ´åã«ã¯ãæ°ç§ããç¶æ³ãåããªãããã©ãã£ã¨é·ãæéãçµã¦ã°åããã¨ãããã¨ãããããã®ã§ãå¯è½ã§ããã°æ°åããããã¯æ°æéããã«åããã¨ãã£ããã¨ãæå¹ã ã¨æãã¾ããï¼ãããã«æ°æéããªã¼ãºãã£ã±ãªãã«ãã¦ãããæ¬çªç°å¢ã¨ããã®ããªãã§ããããâ¦â¦ï¼
ç»é¢ã®ãããã¡ãµã¤ãº
æå¾ã«ãããã¼ããªããã¨ã§ãããä¸ã¤ã ãè£è¶³ãã¾ãã
Windows ã®ã³ã³ã½ã¼ã«ã§ãåºåããã¡ã¤ã«ã«ãªãã¤ã¬ã¯ããã¦ããªãç¶æ
ã§ã¹ã¬ãããã³ããåããããããªãå ´åã¯ãå¿ããã«ã³ãã³ãããã³ããã®ããããã£ã§ãç»é¢ã®ãããã¡ãµã¤ãºãã大ãããã¦ããã¾ãããã
ã¹ã¬ãããã³ãã¯çµæ§ãªè¡æ°åºåãããã®ã§ãããããªãã¨ä¸ã®æ¹ãåãã¦ãç¡é§ã«ç¦ãã¾ãâ¦â¦ã
ç»åã§ã¯é«ãã ãæ大ã«ãã¦ãã¾ããããå¹ ãã大ãããã¦ããã¦ãããããããã¾ããã
ã¹ã¬ãããã³ãã®èªã¿æ¹
æ¦è¦
ã¹ã¬ãããã³ãã®èªã¿æ¹ã«ã¤ãã¦ã¯ãä¸æã«æç« ã§èª¬æããããå³ã§è¦ãã»ããããã£ã¦ãããããããã¨æãâ¦â¦ã®ã§ãæãåã£ã¦å³ã§ãéããã¾ãã
ã¹ã¬ãããã³ããããããããã«è¦ãã¾ãããæå¤ã¨åç´ãªä½ãã§ããã
ããããã1 ï½ 2 è¡ç®ã®çµæã«ã¤ãã¦ã§ãã
ã¯ãã
ããã¤ãã£ãã¹ã¬ãã IDãã¨ãããããªãã¨è¨ããã¦ãâ¦â¦ã¨ããè¦ç´ ãè¦åãããã¾ãããå®ã¯ããããå¥ã«æãããã¨ãªãã¦ãã¹ã¬ãããã³ããèªãã¨ããã¾ãã¯ä¸è¨ã® 3 ã¤ã«ã ã注ç®ãã¦ããã¨ã¯ï¼ã¨ããããï¼ç¡è¦ãã¦ãã¾ã£ã¦ããï¼â¦â¦ã¨æãã¾ãã
ã¹ã¬ããåãã¹ã¬ãã IDãã¹ã¬ããã®ç¶æ
ãã® 3 ã¤ã§ãã
ããããããªããåã«ãèªããããªæ°ããã¦ãã¾ãã
ã¹ã¬ããå
ã¾ãã¯ã¹ã¬ããåã§ãã
ã¹ã¬ããã«ãè²ã ããã¾ããã¡ã¤ã³ã¹ã¬ãããæ¸ããã³ã¼ãããç´æ¥çæããã¹ã¬ããããã¬ã¼ã ã¯ã¼ã¯ãçæããã¹ã¬ãããJVM ã®å é¨ã¹ã¬ããâ¦â¦ã
ã¹ã¬ããåãè¦ã¦ããã¾çºçãã¦ããåé¡ã«é¢ä¿ã®æ·±ãããªã¹ã¬ããã«ããããã¤ãããã¨ãã§ãã¾ãã
ã¾ãã¯æ³¨ç®ããã¹ã¬ãããã¹ã¬ããåã§ãã£ã¨çµãè¾¼ãã§ããããã®ã¹ã¬ããã®ç¶æ
ï¼é·ç§»ï¼ã足ãããã«èª¿æ»ãå§ãã¦ãããã¨ã«ãªãã¾ãã
JVM ã®å
é¨ã¹ã¬ããã¨ããã®ãæ¡å¤å¤ãã®ã§ãã¹ã¬ããã®å¤ãã«å§åãããªãããã«ãã¾ãããã
ãã¨ãã°ãä¸è¨ã®ãããªãã®ãããã¾ãã*4
- CompilerThread
- Finalizer
- Reference Handler
- VM Thread
èªåãéçºãªããéç¨ãã¦ããã¢ããªã±ã¼ã·ã§ã³ã®ä¸»è¦ãªã¹ã¬ããã®ååã«ã¤ãã¦ã¯äºãææ¡ãã¦ããã¨ãä½è¨ãªã¹ã¬ããã«æããããã調æ»ãã¹ã ã¼ãºã«ããã¨æãã¾ãã
èªåã使ã£ã¦ãã JVM ãããã©ã«ãã§çæããã¹ã¬ãããï¼Hello World â Thread.Sleep() ã ãããã¢ããªã±ã¼ã·ã§ã³ã®ã¹ã¬ãããã³ããåãã¨ããã¦ï¼äºã調ã¹ã¦ããã¨ããã®ãããããããã¾ããã
ã¹ã¬ãã ID
ç¶ãã¦ãã¹ã¬ãã IDï¼tidï¼ãéè¦ã§ãã
ã¨ããã®ããã¹ã¬ãããã³ããããã ããããªããä½åº¦ãåå¾ããã¨ããããããã®ã¹ã¬ãããã³ãéã§ã®ã¹ã¬ããã®åä¸æ§ãä¿è¨¼ããã®ããã®ã¹ã¬ãã ID ã ããã§ãã*5
ã¹ã¬ãã ID ããã¼ã«ãã¦ãã¹ã¬ããã®ç¶æ é·ç§»ã追跡ãããã¨ã«ãªãã¾ãã
ãªã®ã§ãããããããã®ãããã«ãèªååããããªãã¾ããã
ã¨ããããã§ãã¹ã¬ãããã³ãã®ç¶æ
ï¼é·ç§»ï¼ãåæãã¦ãããç´ æµãªãã¼ã«ãããããã®æ¥çã«ã¯åå¨ãã¾ãã
ããããããã¨ã§ãã
ã¹ã¬ããã®ç¶æ
æå¾ã«ãã¨ããããèå¿ã®ãã¹ã¬ããã®ç¶æ ã§ãã
ã¹ã¬ããã®ç¶æ
ã¨ãã¦ã¯ããã®ã¹ã¬ããã® Thread.State ãåºåããã¦ãã¾ãã
ãã®ãããJavadoc ãè¦ãã°ããããã®ç¶æ
ã®è§£èª¬ããããã·æ¸ãã¦ããã¾ãã
ããããããã¨ã§ãã
ããããããã¨ãªã®ã§ãããåã¯ã¹ã¬ãããã³ãã®å¨å®¹ã«æããã㦠#æ¸è°·java ã®çºè¡¨è³æä½ãã¾ã§ã¯ãããªãã¨ã«ãæ°ã¥ãã¾ããã§ããâ¦â¦ã*6
ã¹ã¿ãã¯ãã¬ã¼ã¹
ãã¦ã1 ï½ 2 è¡ç®ã«ã¤ãã¦ã¯ãããªã¨ããã§ãã ã¹ã¬ãããã³ãã®æ®ãã¯ãã¹ã¿ãã¯ãã¬ã¼ã¹ã¨ãããã¨ã«ãªãã¾ãã
ã¹ã¿ãã¯ãã¬ã¼ã¹ã¯ãå¥ã«é£ãããã¨ãªãã§ããã
åã¹ã¬ããã®ã³ã¼ã«ã¹ã¿ãã¯ãä¸ããä¸ã«åãã£ã¦åºåããã¦ãããä½ã®å¤å²ããªãã¹ã¿ãã¯ãã¬ã¼ã¹ã§ããæ®éã«èªãã§ãã ããã
â¦â¦ã¨è¨ãããã¨ãããªã®ã§ãããã¹ã¬ãããã³ãã®ã¹ã¿ãã¯ãã¬ã¼ã¹ãèªãã«ããã£ã¦ã¯ãä¸ã¤æ³¨ç®ãã¹ããã¤ã³ããããã¾ãã
ãã¨ãã°ãå ã»ã©ã®ç»åã®ã¹ã¿ãã¯ãã¬ã¼ã¹ã«ã¯ãããããè¡ãããã¾ããã
- locked<0x182d3880> (a org.apache.tomcat.util.net.JIoEndPoint$Worker)
ããã¯ããã®ã¹ã¬ããã 0x182d3880 ã¨ãã ID ãæã£ããªãã¸ã§ã¯ãï¼åã¯org.apache.tomcat.util.net.JIoEndPoint$Workerï¼ã®ããã¯ãåã£ã¦ããã¨ãããã¨ãæå³ãã¦ãã¾ãã
ãã®æ å ±ãçµæ§éè¦ã§ããã¨ãã°ãå¥ã®ã¹ã¬ããã®ç¶æ ã BLOCKED ã§ããã®ã¹ã¿ãã¯ãã¬ã¼ã¹ã«ã¯ããããè¡ãåºåããã¦ããããããã¾ããã
- waiting to lock<0x182d3880> (a org.apache.tomcat.util.net.JIoEndPoint$Worker)
ããè¦ãã¨ãå
ã»ã©ã®ãã®ã¨ ID ãåãã§ãã
ãã®ãã¨ããããã®ã¹ã¬ããã¯å
ã»ã©ã®ã¹ã¬ãããåå¾ãã¦ããããã¯ã®è§£æ¾ãå¾
ã£ã¦ãããã¨ãããã¨ãããããã¨ããããã§ãã
JVM ãã¨ã®éãã«ã¤ãã¦
ãã®ã¨ã³ããªã§èª¬æã«ä½¿ç¨ããã¹ã¬ãããã³ãã¯ãJava 7 ã®ãã®ã§ãã
Java ã®ãã¼ã¸ã§ã³ãéã£ãããJVM ã®éçºå
ãç°ãªãå ´åã¯ãã¹ã¬ãããã³ãã®åºåå
容ãç°ãªã£ã¦ãã¾ãã
ã¨ã¯ãããåºæ¬çã«ã¯åºåããã¦ããå
容ã¯ã ãããåãã§ããã©ã¼ããããä¼¼éã£ã¦ãããããããã§èª¬æããç¥èãæ´»ç¨ããã°èªãããã¨èãã¦ããã¨æãã¾ãã
ããããªãã¨ãããããã°ããã ã調ã¹ãã°ããã¶ãããã«æ¸ããç¥èã¨çµã³ã¤ããªããèªããã¨ãã§ããã¯ãã§ãã
â¦â¦ã¨èãããã£ããã«ãªã£ãã®ãå ã»ã©ç´¹ä»ããããã°ã®ã¨ã³ããªã®ä¸é¨ã ã£ãã®ã§ãããã«å¼ç¨ããã¦ããã ãã¾ãã
JVM ã®ç¨®é¡ããã¼ã¸ã§ã³ã«ããè¥å¹²ãã©ã¼ãããã¯ç°ãªãã¾ãããã ãããä¼¼ããããªå½¢å¼ã«ãªãã¾ãã
SunãHPãAppleãBEAã® VM ã®ãã¡ã©ããä¸ã¤æ £ãã VM ã§è§£æçµé¨ãç©ãã§ããã°ä»ã® JVM ã®ã¹ã¬ãããã³ããèªãã®ã«å°ããã¨ã¯ãªãã§ãããã
ãã ããIBM ã® VM ã¯ããªãç¬ç¹ã®ãã©ã¼ãããã«ãªã£ã¦ããç¬èªã®è§£ææè¡ãå¿ è¦ã«ãªãã¾ãã
ã¡ãªã¿ã«ããããã®ã¨ã³ããªã®ç¶ããæ¸ããã¦ããã°ãåãã¹ã¬ãããã³ãã«ã¤ã㦠LT ããããã¨ããããã°ãæ¸ããã¨ããªãã£ãã§ãããâ¦â¦ãç¬
ã¾ã¨ã
ã¹ã¬ãããã³ãã®ä½¿ãã¿ã¡ãåãæ¹ãèªã¿æ¹ã«ã¤ãã¦èª¬æãã¾ããã
ãããã¹ã¬ãããã³ãããããªãã§ããã
åã¯ããããªãã§ãã
ã¹ã¬ãããã³ã㯠Java ã®ãããããæ©è½ã§ãã
ã«ã¸ã¥ã¢ã«ã«ã¹ã¬ãããã³ãåã£ã¦ãããããèªã¿ã¾ãããã*7
åèæç®
ã¹ã¬ããã«ã¤ãã¦åèã«ãªãæ¸ç±ãç´¹ä»ãã¦ããã¾ãã
ããã°ã©ãã³ã°è¨èªJava 第4ç
第14ç« ãã¾ãã¾ãã¹ã¬ããã«å²ããã¦ãã¦ãJavaã®ã¹ã¬ããã®åºç¤ãããããããã®ãããã§ãã
ã¹ã¬ãããã³ãã«ã¤ãã¦ã®è§£èª¬ã¯ä¸åããã¾ãããâ¦â¦ãããã°ã©ãã³ã°è¨èª Java 第4ç
- ä½è : ã±ã³ã¢ã¼ãã«ã,ãããããã¼ã ãº,ã¸ã§ã¼ã ãºã´ã¹ãªã³,Ken Arnold,David Holmes,James Gosling,æ´ç°è³æ¨¹
- åºç社/ã¡ã¼ã«ã¼: æ±äº¬é»æ©å¤§å¦åºçå±
- çºå£²æ¥: 2014/05/10
- ã¡ãã£ã¢: åè¡æ¬
- ãã®ååãå«ãããã° (4件) ãè¦ã
å¢è£æ¹è¨ç Javaè¨èªã§å¦ã¶ãã¶ã¤ã³ãã¿ã¼ã³å ¥é ãã«ãã¹ã¬ããç·¨
Object.wait() ã®å°ã ãããããä»çµã¿ã«ã¤ãã¦ã®é常ã«ãããããã解説ãæ²è¼ããã¦ãã¾ãã
Thread.State ã® WAITING / TIMED_WAITING ãã©ãããç¶æ ãªã®ãããããªãã¨ããæ¹ã«ãªã¹ã¹ã¡ã§ããå¢è£æ¹è¨ç Javaè¨èªã§å¦ã¶ãã¶ã¤ã³ãã¿ã¼ã³å ¥é ãã«ãã¹ã¬ããç·¨
- ä½è : çµå浩
- åºç社/ã¡ã¼ã«ã¼: ã½ãããã³ã¯ã¯ãªã¨ã¤ãã£ã
- çºå£²æ¥: 2006/03/21
- ã¡ãã£ã¢: 大åæ¬
- è³¼å ¥: 15人 ã¯ãªãã¯: 287å
- ãã®ååãå«ãããã° (204件) ãè¦ã
åè Web ãã¼ã¸
æ°å¤ãã® Web ãã¼ã¸ãåèã«ããã¦ããã ããã®ã§ããããªãã§ãç¹ã«å½¹ç«ã£ããã®ããªã³ã¯ãã¦ããã¾ããï¼æ¬æä¸ã§è¨åãããã®ãå«ã¿ã¾ãï¼
*1:ãã¡ãã JVM èªä½ãç°å¸¸ãªç¶æ ã«ããã±ã¼ã¹ãããããªãã¯ãªãã§ãããããã°ã©ã ããåæ¢ããã¦ããã±ã¼ã¹ã®å¤ãã¯ããããããã§ã¯ãªãã¨æãã¾ã
*2:便å®ä¸ãããã¡ã¤ã«ãã¼ã«ã¨è¨ãã¾ããããVisualVM ã¯ãããã¡ã¤ã«ã ããããªãã¦è²ã ã§ããã¹ãã便å©ãã¼ã«ã§ã
*3:æ確ãªæ ¹æ ï¼JVM ã®ä»æ§ãã¨ãâ¦â¦ï¼ãæã£ã¦ããªãã®ã¨ããã¹ã¦ã®ç¶æ³ã§ããè¨ããã¨ã¯éããªããããä¸å¿ã»ã¨ãã©ãã¨æ¸ãã¦ãã¾ãããã¾ãä¸ããªããã¨èãã¦ããã¨æãã¾ã
*4:ã ãããä¼¼ããããªã¹ã¬ãããããã¨èãã¦ããã§ãããJVM ã®ç¨®é¡ããã¼ã¸ã§ã³ã«ãã£ã¦ç´°ç®ãååã¯ç°ãªãã¾ã
*5:å®è³ªçã«ã¯ã¹ã¬ããåã§ã追跡ã§ããå ´åãå¤ãã¨æãã¾ããããã¶ããªãã¨ããä¿è¨¼ã¯ä¸åãªãã®ã§ãäºæ ãé²ãããã«ã¹ã¬ãã ID ãç¨ããæ¹ãããã§ããã
*6:ã¾ãã幸ãä¸å¹¸ããèªã¾ãããããªããããªæ©ä¼ãããã¾ã§ã¯ã»ã¼ãªãã£ãããã§ãããããããã¯ç©æ¥µçã«åã£ã¦ãèªãã§ããããã¨æã£ã¦ãã¾ã
*7:ãã ãéç¨ãã¦ãã®ãèªåãããªãå ´åï¼ç¹ã«ä¼ç¤¾ãç°ãªãå ´åã¨ãããã£ãã®ãã¨ç¸æãã¨ã³ãã¦ã¼ã¶ã®å ´åã¨ãâ¦â¦ï¼ãããããã¹ã¬ãããã³ãåã£ã¦ãã¨ã«ã¸ã¥ã¢ã«ã«é ¼ãã¨æªè¨ãªé¡ããããå¯è½æ§ãããã®ã§æ°ãã¤ãã¾ããããç¸æã®ã¹ãã«ã¬ãã«ã«ãããã¾ããããã®ã¨ã³ããªã§ç´¹ä»ãããããªãåãæ¹ããæãã¦ãããã¨åã°ããå ´åãããããããã¾ãã