»ùÓÚ JVMTI ʵÏÖ Java Ïß³ÌµÄ¼à¿Ø
¼¶±ð£º Öм¶
Àî Áè
, Èí¼þ¼Ü¹¹Ê¦, IBM
2009 Äê 12 ÔÂ 10 ÈÕ
Ëæ
×ŶàºË CPU µÄÈÕÒæÆÕ¼°£¬Ô½À´Ô½¶àµÄ Java
Ó¦ÓóÌÐòʹÓöàÏ̲߳¢ÐмÆËãÀ´³ä·Ö·¢»ÓÕû¸öϵͳµÄÐÔÄÜ¡£¶àÏ̵߳ÄʹÓÃÒ²¸øÓ¦ÓóÌÐò¿ª·¢ÈËÔ±´øÀ´Á˾޴óµÄÌôÕ½£¬²»ÕýÈ·µØÊ¹ÓöàÏ߳̿ÉÄÜÔì³ÉÏß³ÌËÀËø»ò×ÊÔ´¾º
Õù£¬µ¼ÖÂϵͳ̱»¾¡£Òò´Ë£¬ÐèÒªÒ»ÖÖÔËÐÐʱÏß³Ì¼à¿Ø¹¤¾ßÀ´°ïÖú¿ª·¢ÈËÔ±Õï¶ÏºÍ¸ú×Ù Java Ïß³Ì״̬µÄÇл»¡£JDK 1.5
¼°ÆäºóÐø°æ±¾ÌṩÁË¼à¿ØÐéÄâ»úÔËÐÐ״̬µÄ½Ó¿Ú JVMTI¡£±¾ÎÄÉîÈë·ÖÎöÁË JVM ÖÐµÄ Java
Ïß³ÌÄ£ÐÍ£¬Éè¼ÆÁËÓÃÓÚ¼à¿ØÏß³Ì״̬Çл»µÄÄ£ÐÍ£¬²¢»ùÓÚ JVMTI ʵÏÖÁË¶Ô Java Ïß³ÌÇл»½øÐÐ¼à¿ØµÄ´úÀí³ÌÐò¡£
JVMTI ¹¤¾ß½Ó¿Ú
Ëæ
×ŶàºË CPU ¼¼ÊõµÄ·¢Õ¹£¬¶àÏ̱߳à³Ì¼¼Êõ±»¹ã·ºµØÓ¦Ó㬴Ӷø³ä·Ö·¢»ÓÕû¸öϵͳµÄÐÔÄÜ¡£Java
ÓïÑÔ¶Ô¶àÏ̱߳à³ÌÌṩÁËÓïÑÔ¼¶µÄÖ§³Ö£¬¿ÉÒÔ·½±ãµØ´´½¨¡¢ÔËÐС¢Ïú»ÙÏ̡߳£È»¶ø£¬¶àÏ̵߳ÄʹÓÃÒ²¸øÓ¦ÓóÌÐò¿ª·¢ÈËÔ±´øÀ´Á˾޴óµÄÌôÕ½£¬²»ÕýÈ·µØÊ¹ÓöàÏ߳̿É
ÄÜÔì³ÉÏß³ÌËÀËø»ò×ÊÔ´¾ºÕù£¬µ¼ÖÂϵͳ̱»¾¡£
ΪÁ˰ïÖú Java ¿ª·¢ÈËÔ±Õï¶ÏºÍ¸ú×Ù Java Ïß³Ì״̬µÄÇл»£¬Sun
¹«Ë¾ÔÚ Java ¿ª·¢¹¤¾ß°ü£¨Java2 Software Development Kit, JDK£©1.5.0 °æ±¾ÖÐÒý½øÁË Java
ÐéÄâ»ú¹¤¾ß½Ó¿Ú£¨Java Virtual Machine Toolkit Interface£¬JVMTI£©£¬ÓÃÓÚÌæ´úÔÚÏÈǰµÄ JDK
°æ±¾ÖÐ×÷ΪÊÔÑ鹦ÄÜ´æÔÚµÄ Java ÐéÄâ»úÆÊÎö½Ó¿Ú£¨Java Virtual Machine Profiling
Interface£¬JVMPI£©ºÍ Java ÐéÄâ»úµ÷ÊÔ½Ó¿Ú£¨Java Virtual Machine Debugging
Interface£¬JVMDI£©¡£Í¨¹ý JVMTI ½Ó¿Ú¿ÉÒÔ´´½¨´úÀí³ÌÐò£¨Agent£©ÒÔ¼àÊӺͿØÖÆ Java
Ó¦ÓóÌÐò£¬°üÀ¨ÆÊÎö¡¢µ÷ÊÔ¡¢¼à¿Ø¡¢·ÖÎöÏ̵߳ȵȣ¬Æä¼Ü¹¹Ä£ÐÍÈçͼ 1 Ëùʾ¡£
ͼ 1. JVMTI ¼Ü¹¹Ä£ÐÍ
Agent ¿ÉÒÔÏòÔËÐÐÖеÄÐéÄâ»úʵÀý¶©ÔĸÐÐËȤµÄʼþ£¬µ±ÕâЩʼþ·¢ÉúµÄʱºò£¬»áÒÔʼþ»Øµ÷º¯ÊýµÄ·½Ê½¼¤»î´úÀí³ÌÐò£¬Í¬Ê± JVMTI
ÌṩÁËÖÚ¶àµÄ¹¦Äܺ¯Êý£¬ÒÔ²éѯºÍ¿ØÖÆ Java Ó¦ÓóÌÐòµÄÔËÐÐ״̬¡£Agent ͨ¹ý JVMTI
ËùÌṩµÄ½Ó¿ÚÓëÐéÄâ»ú½øÐÐͨÐÅ£¬²¢Í¬²½¼à¿ØÐéÄâ»úµÄÔËÐÐ״̬£¬ËüÓëÔËÐÐÖÐµÄ Java Ó¦ÓóÌÐòÊÇÏà¶Ô¶ÀÁ¢µÄ£¬²»»á¸ÉÈųÌÐòµÄÕý³£ÔËÐС£Agent
¿ÉÒÔÓÃÈκÎÖ§³Ö C ÓïÑÔ±ê×¼µÄ±¾µØÓïÑÔÀ´±àд£¬²¢ÒÔ¶¯Ì¬Á´½Ó¿âµÄ·½Ê½´æÔÚ£»Java ³ÌÐòÆô¶¯µÄʱºò¿ÉÒÔ¼ÓÔØÕâ¸ö¶¯Ì¬Á´½Ó¿â¡£
»ùÓÚ JVMTI ½Ó¿Ú¹¹½¨µÄ Agent ¿ÉÒÔ·½±ãµØÊµÏÖ¶Ô Java Ïß³Ì״̬Çл»µÄ¸ú×Ù£¬´Ó¶øÊ¹¿ª·¢ÈËÔ±Äܹ»ÔÚÔËÐÐʱÇå³þµØÁ˽â¶àÏß³ÌÓ¦ÓóÌÐòÖÐÏ̵߳Ť×÷Çé¿ö£¬·½±ã½øÐе÷ÊԺͳý´í¡
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
Ŀ¼
¡¡¡¡Ç°ÑÔ
¡¡¡¡Ò». Java ÎĵµºÍ javadoc
¡¡¡¡¶þ. Îĵµ×¢Ê͵ĸñʽ
¡¡¡¡¡¡¡¡1. Îĵµ×¢Ê͵ĸñʽ»¯
¡¡¡¡¡¡¡¡2. Îĵµ×¢Ê͵ÄÈý²¿·Ö
¡¡¡¡Èý. ʹÓà javadoc ±ê¼Ç
¡¡¡¡¡¡¡¡1. @see µÄʹÓÃ
¡¡¡¡¡¡¡¡2. ʹÓà @author¡¢@version ˵Ã÷Àà
¡¡¡¡¡¡¡¡3. ʹÓà @param¡¢@return ºÍ @exception ˵Ã÷·½·¨
¡¡¡ ......
·â×°ÀàÒ²½Ð°ü×°À࣬ÊÇÕë¶Ô°ËÖÖ»ù±¾¶¨ÒåÏàÓ¦µÄÒýÓÃÀàÐÍ¡£
»ù±¾Êý¾ÝÀàÐÍ ·â×°Àà
boolean &nbs ......
¹Ø¼ü×Öfinal£º
ÔÚJavaÖÐÉùÃ÷Àà¡¢ÊôÐԺͷ½·¨Ê±£¬¿ÉʹÓùؼü×ÖfinalÀ´ÐÞÊΡ£
final±ê¼ÇµÄÀ಻Äܱ»¼Ì³Ð¡£
final±ê¼ÇµÄ·½·¨²»Äܱ»×ÓÀàÖØÐ´¡£
final±ê¼ÇµÄ±äÁ¿(³ÉÔ±±äÁ¿»ò¾Ö²¿±äÁ¿)¼´³ÉΪ³£Á¿£¬Ö»Äܸ³ÖµÒ»´Î¡£
final±ê¼Çµ ......
ÓÉÓÚÓÐÒ»¶¨µÄJavaºÍJUnitµÄ»ù´¡£¬ËùÒԸоõµÚÒ»¿Î±È½Ï¼òµ¥£¬µ«ÊÕ»ñ»¹ÊÇÓе쬱ÈÈçËµÖØ¹¹²¿·Ö½éÉܵÄÄÚÈÝ¡£
JUnitÒªµã£º
²âÊÔ·½·¨µÄÃüÃû¹æÔò£º
l ·½·¨±ØÐëÉùÃ÷Ϊpublic
l ·½·¨µÄ·µ»ØÖµ±ØÐëΪvoid
l ·½·¨µÄÃû×Ö±ØÐëÒÔСдµÄtestΪǰ׺
l ·½·¨²»ÄܽÓÊÜÈκβÎÊý
ÖØ¹¹Òªµã£º
1. &nbs ......