ºìÁªLinuxÃÅ»§
Linux°ïÖú

ͨ¹ýJRockitÌá¸ßLinux JavaÐÔÄÜ·ÖÎö

·¢²¼Ê±¼ä:2007-02-01 00:17:44À´Ô´:ºìÁª×÷Õß:Linuxperson
¡¡¡¡Í¨¹ý·ÖÎöJavaÏ̶߳ѽâ¾öJavaÓ¦ÓóÌÐòÖдæÔÚÎÊÌâµÄ¼¼Êõ¡£ÎÒÃÇ¿ÉÒÔʹÓÃÏ̶߳ÑÀ´·ÖÎöÖîÈçÓ¦ÓóÌÐò¹ÒÆð£¬ÏìӦʱ¼ä³¤ÒÔ¼°³ÌÐò±ÀÀ£µÈÇé¿ö¡£ÔÚÏêϸ½éÉÜ·ÖÎöÏ̶߳ѵļ¼Êõ֮ǰ£¬ÎÒÃÇÏÈÀ´¼òÒªµØ¿´¿´Ï̶߳ѱ¾Éí¡£

¡¡¡¡JavaÏ̶߳ÑÊÇÒ»¸öÔËÐÐÖеÄJavaÓ¦ÓóÌÐòµÄËùÓÐÏ̵߳ÄÒ»¸ö¿ìÕÕ¡£Ëü»áÏÔʾһЩÏñµ±Ç°µÄ¶ÑÕ»¸ú×Ù¡¢×´Ì¬ÒÔ¼°Ïß³ÌÃû³ÆÖ®ÀàµÄÐÅÏ¢¡£Ïß³ÌÁбíÖаüÀ¨ÓÉJVM±¾Éí´´½¨µÄỊ̈߳¨¸ºÔðÀ¬»øÊÕ¼¯¡¢ÐźŴ¦ÀíµÈ¹ÜÀí¹¤×÷£©ºÍÓÉÓ¦ÓóÌÐò´´½¨µÄÏ̡߳£

¡¡¡¡Í¨¹ý¸øJVM·¢ËÍÒ»¸öSIGQUITÐźţ¬Äú¿ÉÒԵõ½Ò»¸öÏ̶߳ѡ£ÔÚUnix²Ù×÷ϵͳ£¨Solaris/Linux/HP-UnixµÈ£©ÖУ¬Í¨¹ýkill-3ÃüÁî¿ÉÒԵõ½Ï̶߳ѡ£Êä³ö³öÏ̶߳ÑÖ®ºó£¬Ó¦ÓóÌÐò¼ÌÐøÕý³£ÔËÐС£µ±Äú¸øJVM·¢ËÍSIGQUITÐźÅʱ£¬JVMµÄÐźŴ¦ÀíÆ÷»áͨ¹ýÊä³öÏ̶߳ÑÀ´ÏìÓ¦ÕâÒ»Ðźš£µ±³ÌÐòÔËÐеÄʱºò£¬Äú¿ÉÒÔÔÚÈκεãµÃµ½Ï̶߳ѡ£

¡¡¡¡Ï̶߳ѵÄÒ»¸öÀý×Ó

¡¡¡¡Çåµ¥1ÏÔʾµÄ¾ÍÊÇÒ»¸öʹÓÃSun JVM 1.4.1µÄµ¥Ïß³ÌÓ¦ÓóÌÐòÖеÄÏ̶߳ѵÄÀý×Ó¡£mainÏß³ÌÊÇÖ÷Ó¦ÓóÌÐòÏ̡߳£ËùÓÐÆäËûµÄÏ̶߳¼ÊÇÓÉJVM´´½¨µÄ£¬¸ºÔðÍê³ÉһЩ¹ÜÀí¹¤×÷¡£µ±·ÖÎöÓ¦ÓóÌÐò¼¶µÄÎÊÌâʱ£¬ÎÒÃÇͨ³£Ö»¹ØÐÄÓ¦ÓóÌÐòÏ̡߳£ÏÂÃ棬ÎÒÃÇÀ´·ÖÎöÇåµ¥1ÖÐmainÏ̵߳ĶÑÕ»¸ú×Ù¡£
¡¡¡¡
ÒýÓÃ:
¡¡¡¡"main" prio=5 tid=0x002358B8 nid=0x7f8 runnable [6f000..6fc40]
¡¡¡¡at test.method1(test.java:10)
¡¡¡¡at test.main(test.java:5)


¡¡¡¡Çåµ¥1¡¡
¡¡
¡¡¡¡´ÓÕâ¸ö´úÂëƬ¶ÏÖÐÄú¿ÉÒÔ¿´µ½£¬Ò»¸öÏ̶߳ÑÕ»¸ú×ÙÓÐÒ»¸öÃû³Æ¡¢Ïß³ÌÓÅÏȼ¶£¨prio=5£©¡¢×´Ì¬£¨¿ÉÔËÐеģ©¡¢Ô´´úÂëÐкţ¬ÒÔ¼°·½·¨µ÷ÓᣴÓÕâ¸ö¶ÑÕ»¸ú×ÙÖпÉÒԵõ½ÈçϽáÂÛ£ºmainÏß³ÌÖ´ÐÐtestÀàµÄmethod1·½·¨ÖеÄһЩ´úÂë¡£¶ø¶Ômethod1·½·¨µÄµ÷ÓÃÊÇÓÉͬһ¸öÀàµÄmain·½·¨Íê³ÉµÄ¡£ÄúÒ²¿ÉÒÔ¿´µ½ÄÇЩ·½·¨ÖÐÈ·ÇеÄÔ´´úÂëÐкš£

¡¡¡¡ÔÚ´ÓһЩ¸ü¸´ÔÓµÄÇé¿öÈ¥·ÖÎöÏ̶߳Ñ֮ǰ£¬ÎÒÃÇÏÈÀ´ÌÖÂÛÄÇЩ¿ÉÒÔÔÚÏ̶߳ÑÖп´µ½µÄÏ̵߳IJ»Í¬×´Ì¬ÒÔ¼°ËüÃǵÄÒâÒå¡£

¡¡¡¡? ¿ÉÔËÐеģºµ±»ñµÃCPUµÄʹÓÃȨʱ¾Í¿ÉÒÔÔËÐлò×¼±¸ºÃÔËÐеÄ״̬¡£JRockitÏ̶߳ѰÑÕâÖÖ״̬³ÆΪACTIVE¡£

¡¡¡¡? ÔÚ¼àÊÓÖеȴý£ºÖ¸ÔÚÒ»¸ö¶ÔÏóÉÏÐÝÃß»òµÈ´ýÉÏÊöʱ¼ä£¬»òÕߵȴýÁíÒ»¸öÏ̵߳Ä֪ͨ¡£ÕâÖÖÇé¿ö»á³öÏÖÔÚ¶ÔThread¶ÔÏóµ÷ÓÃÈκÎsleep() ·½·¨»òÕ߶ÔObjectµ÷ÓÃwait() ·½·¨Ê±¡£

¡¡¡¡ÀýÈ磬ÔÚBEA WebLogic ServerÖУ¬¿ÕÏеÄÖ´ÐÐÏ߳̾ʹ¦ÓÚÕâÖÖ״̬£¬ËüÃÇ»áµÈ´ýÒ»¸ösocketÔĶÁÆ÷Ïß³Ì֪ͨËüÃÇÈ¥×öһЩÐµĹ¤×÷¡£¶ÑÕ»¸ú×ÙÈçÏÂËùʾ£º
¡¡¡¡
ÒýÓÃ:
¡¡¡¡"ExecuteThread: '2' for queue: 'weblogic.admin.RMI'
"daemon prio=5 tid=0x1752F040 nid=0x180c in
Object.wait()[1887f000..1887fd8c]at java.lang.
Object.wait(Native Method)waiting on
(a weblogic.kernel.ExecuteThread)at java.lang.
Object.wait(Object.java:426)


¡¡¡¡JVMµÄÆäËû°æ±¾°ÑÕâÖÖ״̬³ÆΪCW¡£JRockit½«ÕâÖÖ״̬³ÆΪWAITING¡£

¡¡¡¡? µÈ´ý¼àÊÓʵÌ壺µÈ´ýËøסһ¸ö¶ÔÏó£¨ÆäËûÏß³ÌÄ¿Ç°Õý¿ØÖÆ×ÅËø£©¡£Èç¹ûÁ½¸ö»òÕ߶à¸öÏ̶߳¼ÏëÔÚͬһʱ¿ÌÖ´ÐÐÒ»¸ö¶ÔÏóµÄijЩͬ²½´úÂë¿é»ò·½·¨£¬¾Í»á³öÏÖÕâÖÖÇé¿ö¡£Çë×¢Ò⣬Ëø×ÜÊǼÓÔÚÒ»¸ö¶ÔÏóÉ϶ø²»ÊǼÓÔÚ¶ÀÁ¢µÄ·½·¨ÉÏ¡£Ò²¾ÍÊÇ˵£¬Èç¹ûÒ»¸öÏß³ÌÒªÖ´ÐÐÒ»¸ö¶ÔÏóµÄͬ²½·½·¨£¬Ëü±ØÐëÏȸøÄǸö¶ÔÏó¼ÓËø¡£

¡¡¡¡ÏÂÃæÏÔʾµÄ¾ÍÊÇÕâÖÖÇé¿öϵÄÒ»¸öÏ̵߳ĶÑÕ»¸ú×ÙµÄÀý×Ó£º
¡¡¡¡
ÒýÓÃ:
"ExecuteThread: '24' for queue: 'DisplayExecuteQueue'
" daemon prio=5tid=0x5541b0 nid=0x3b waiting for monitor entry
[49b7f000..49b7fc24]at weblogic.cluster.replication.
ReplicationManager.createSecondary(ReplicationManager.java:908)-
waiting to lock (a java.lang.Object)at weblogic.cluster.replication.
ReplicationManager.updateSecondary(ReplicationManager.java:715)


¡¡¡¡ÔÚÇåµ¥2

¡¡¡¡ÔÚÉÏÊö´úÂëƬ¶ÏÖУ¬ÄúÃÇ¿ÉÒÔ¿´µ½Õâ¸öÏß³ÌÒѾ­ËøסÁËÒ»¸ö¶ÔÏó£¨6c408700£©£¬²¢ÇÒ»¹ÔڵȴýËøסÁíÒ»¸ö¶ÔÏó£¨6c4b9130£©¡£

¡¡¡¡JVMµÄÆäËû°æ±¾¿ÉÄܲ»»áÔÚ¶ÑÕ»¸ú×ÙÖиø³ö¶ÔÏóIDµÄ¼ÓËøÐÅÏ¢¡£ÕâÖÖÇé¿öÏ£¬ÎÒÃÇ¿ÉÒÔ´ÓÏ̵߳Ä״̬ÖÐÍƲâ³öÏß³ÌÕýÔڵȴý¸ø¶ÔÏó¼ÓËø¡£Í¬ÑùµÄ״̬ҲÐí»á±»³ÆΪMW¡£JRockit½«ÕâÖÖ״̬³ÆΪLOCKED¡£

¡¡¡¡ÏÖÔÚ£¬ÎÒÃÇÀ´¿´¿´¸÷ÖÖ²»Í¬Çé¿öϵÄһЩÏ̶߳ѣ¬²¢Í¨¹ý·ÖÎöËüÃÇÀ´Ñ°ÕÒÓ¦ÓóÌÐòÖеÄÎÊÌâ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. Linuxperson ÓÚ 2007-02-01 00:19:04·¢±í:

    ¡¡¡¡ËÀËøÓ¦ÓóÌÐòÖеÄÏ̶߳Ñ

    ¡¡¡¡ÔÚÇåµ¥2£¨Ö»ÏÔʾÁ˲¿·ÖÏ̶߳ѣ©ÖУ¬Äú¿ÉÒÔ¿´µ½JVMÒѾ­·¢ÏÖÁËËÀËø²¢ÇÒÔÚÏ̶߳ÑÖиø³öÁ˸ÃÐÅÏ¢¡£ÏûÏ¢ÖкÜÇå³þµØ±íÃ÷ÁË¡°ExecuteThread: '47' for queue: 'default'¡±ÕýÔڵȴý¸ø±»"ExecuteThread: '57' for queue: 'default'"ËøסµÄ¶ÔÏó¼ÓËø¡££¨Õâ¸öÏ̶߳ÑÀ´×ÔÓÚWebLogic Server¡£ÕâЩÏ̶߳¼ÊÇWebLogic ServerµÄ¹¤×÷Ị̈߳¬ËüÃǸºÔð´¦Àí¿Í»§»úÇëÇó¡££©Í¬Ê±£¬Ö´ÐÐÏß³Ì47Ò²ËøסÁËÖ´ÐÐÏß³Ì57ÕýÔڵȴý¼ÓËøµÄÒ»¸ö¶ÔÏó¡£Õâ¾ÍÊÇËÀËø¡£ÔÚÕâÖÖ״̬Ï£¬ÕâÁ½¸öÏ̶߳¼ÎÞ·¨¼ÌÐøÔËÐУ¬ËüÃǶ¼ÔڵȴýÁíÒ»¸öÏß³ÌÊÍ·ÅËø¡£

    ¡¡¡¡ÔÚÇåµ¥2ÖУ¬Ö´ÐÐÏß³Ì1ÕýÔڵȴý¸øConnectionScavanger¶ÔÏó¼ÓËø£¬µ«ÊÇÕâ¸ö¶ÔÏóÄ¿Ç°ÒѾ­±»Ïß³Ì47ËøסÁË£¬ÕýÈçÇ°ÃæÌáµ½¹ýµÄ£¬Ïß³Ì47ÓÖ±»Ïß³Ì57ËÀËøÁË¡£Òò´Ë£¬Ö´ÐÐÏß³Ì1Ò²ÎÞ·¨¼ÌÐøÔËÐÐÏÂÈ¥¡£Õâ×îÖÕ½«µ¼Ö³ÌÐòµÄ¹ÒÆð£¬ÒòΪ·þÎñÆ÷ÖеÄÆäËûÖ´ÐÐÏß³ÌËæºóÒ²»áÊÔͼ»ñµÃÄǸö±»Ö´ÐÐÏß³Ì47ºÍ57ËøסµÄ¶ÔÏóµÄËø¡£

    ¡¡¡¡ÓÐЩJVM²»»á¸ø³öËÀËøÐÅÏ¢¡£ËüÖ»»á¸ø³öÏ̶߳ѡ£Õâʱºò£¬ÎÒÃÇ¿ÉÒÔͨ¹ý²é¿´Ï̵߳Ä״̬ºÍ¶ÑÕ»¸ú×ٵóöͬÑùµÄ½áÂÛ¡£

    ¡¡¡¡ÉÏÊöÕâ¸öÇé¿öÖеÄÎÊÌâÔ´ÓÚWebLogicÖеÄÒ»¸öbug£¬ºóÀ´ÒѾ­ÐÞ¸´ÁË¡£

    ¡¡¡¡ÆäËû¹ÒÆðµÄÇé¿ö

    ¡¡¡¡ÔÚһЩÇé¿öÏ£¬Äú¿ÉÄܻῴµ½´ó¶àÊýÏ̶߳¼ÊÇ¡°¿ÉÔËÐС±µÄ£¬µ«ÊÇ·þÎñÆ÷ÈÔÈ»»á¹ÒÆð£¬ÎÞ·¨ÏìÓ¦¿Í»§»úµÄÇëÇó¡£Èç¹ûijЩÏß³ÌÔÚ×öIO£¨ÊäÈëÊä³ö£©²Ù×÷£¬ËüÃÇ¿ÉÄÜ»áÔÚÖ´ÐÐread()·½·¨µÄʱºò±»×èÈûס£¬µ«ÊÇ״̬»¹ÊÇ¡°¿ÉÔËÐеġ±£¨Êý¾Ý¿â»òÆäËûÍøÂçÏìÓ¦µÄÇé¿ö¿ÉÄܺÜÔ㣩¡£Èç¹û³öÏÖÕâÖÖÇé¿ö£¬ÄúÐèÒª¼ì²éÊý¾Ý¿âºÍÍøÂçÊÇ·ñÕý³£¡£

    ¡¡¡¡Ò»¸ö¡°¿ÉÔËÐеġ±Ï̱߳»×èÈûס»¹¿ÉÄÜÊÇÓÉÏÂÁÐÔ­ÒòÒýÆðµÄ£º

    ¡¡¡¡? ³ÌÐò´úÂëÖеÄÎÞÏÞÑ­»·¡£Õâ»áµ¼ÖÂÑÏÖصÄCPUÕ¼Óá£

    ¡¡¡¡? JVMµÄÀ¬»øÊÕ¼¯¿ÉÄÜ»áÔËÐкܳ¤Ê±¼ä£¬Õ¼¾Ý´óÁ¿µÄCPUʱ¼ä¡£

    ¡¡¡¡? JVM½ø³Ì¿ÉÄÜ»áÓÃÍêÎļþÃèÊö·û¡£

    ¡¡¡¡Èç¹ûÓ¦ÓóÌÐòµÄ´úÂëµ÷ÓÃÁËwait()·½·¨»òsleep()·½·¨£¬Ïß³ÌÔÚÐÝÃßʱ¼äÄÚ²»»á¼ÌÐøÔËÐÐ----ÕâʱÏ̵߳Ä״̬¾ÍÊÇ¡°ÔÚ¼àÊÓÖеȴý¡±¡£³öÏÖÕâÖÖÇé¿ö£¬Ó¦¸Ã¼ì²é³ÌÐò´úÂë¡£

    ¡¡¡¡¶ÔÒ»¸ö¶ÔÏóµÄÕùÓÃÒ²»áÒýÆðϵͳÐÔÄܵÄϽµ£¬×îÖջᵼÖ³öÏÖÀàËÆÓÚ¹ÒÆðµÄ״̬¡£ÕâÖÖÇé¿öÏ£¬´ó¶àÊýÏ̵߳Ä״̬¾ÍÊÇ¡°µÈ´ý¼àÊÓʵÌ塱¡£ËùÒÔÓ¦¸Ã×Ðϸ¼ì²é³ÌÐò´úÂëÒÔ¼õÉÙ¶ÔÌض¨¶ÔÏóµÄÕùÓá£Ï߳̿ÉÄÜÔڵȴýÀ´×ÔÁíÒ»¸ö·þÎñÆ÷µÄÏìÓ¦£¬¶øÁíÒ»¸ö·þÎñÆ÷¿ÉÄÜÓÉÓÚÆäËûÔ­ÒòÒ²´¦ÓÚ¹ÒÆð״̬£¬Ëü¾ÍÎÞ·¨¸øÕâ¸ö·þÎñÆ÷·¢ËÍÏìÓ¦ÐÅÏ¢¡£

    ¡¡¡¡ÔÚÉÏÊöËùÓÐÇé¿öÖУ¬Äú¶¼ÐèҪÿ¸ô¼¸ÃëÈ¡Ò»¸öÏ̶߳ѣ¨×ܹ²È¡¶à¸öÏ̶߳ѣ©£¬´Ó¶øÄܹ»±È½ÏËùÓÐÏ̶߳ÑÖеÄijһ¸öÏ̵߳Ä״̬£¬²¢ÇÒÄú¿ÉÒÔ¾ö¶¨Ï߳̿ÉÒÔ¼ÌÐøÔËÐл¹ÊǼÌÐøµÈ´ý¡£

    ¡¡¡¡JVM±ÀÀ£µÄÇé¿ö

    ¡¡¡¡JVMµÄ±ÀÀ£¿ÉÄÜ»áÓÉÏÂÁÐÔ­ÒòÒýÆð£º

    ¡¡¡¡1£®JVM¿âÖеÄbug¡£

    ¡¡¡¡2£®Ó¦ÓóÌÐò´íÎóµØʹÓÃÁËJNI API¡£

    ¡¡¡¡3£®Ó¦ÓóÌÐò£¨Ô­ÉúÊý¾Ý¿âÇý¶¯µÈ£©ËùÓõÄÔ­ÉúÄ£¿éÖдæÔÚbug¡£

    ¡¡¡¡Í¨³££¬µ±JVM±ÀÀ£µÄʱºò£¬Ëü»á¸ø³öÒýÆð±ÀÀ£µÄJavaÏ̵߳ĶÑÕ»¸ú×Ù¡£Ò»Ð©JVM»áÔÚÍ˳ö֮ǰ¸ø³öÒ»¸öÍêÕûµÄÏ̶߳ѣ¨ËùÓÐÏ̵߳ĶÑÕ»¸ú×Ù£©¡£ÎÒÃǹØÐÄÕâЩÏ̶߳ѵÄÄ¿µÄÖ÷ÒªÔÚÓÚÑ°ÕÒ±ÀÀ£Ê±ÕýÔÚÔËÐеÄÊÇÄĸöÏ̡߳£Õâ¸öÏ̳߳ÆΪ¡°µ±Ç°Ï̡߳±¡£Èç¹ûJVM¸ø³öÒ»¸öÍêÕûµÄÏ̶߳ѣ¬Ëü»á±ê³ö¡°µ±Ç°Ï̡߳±¡£Òò´Ë£¬Ò»°ãÀ´ËµÕÒ³öÒýÆð±ÀÀ£µÄÏ̻߳¹ÊDZȽÏÈÝÒ׵ġ£

    ¡¡¡¡×¢Ò⣬±ÀÀ£µÄÏ̶߳Ñͨ³£Êä³öµ½stdout»òstderr¡£JVM¿ÉÄÜÒ²»áÉú³ÉÒ»¸ö¶þ½øÖƸñʽµÄºËÐÄÎļþ¡£

    ¡¡¡¡±ÀÀ£Ï̶߳ѵÄÀý×Ó

    ¡¡¡¡Èç¹ûÄú¼ì²éÒ»ÏÂÇåµ¥3ÖеıÀÀ£Ï̶߳ѣ¬Äú¿ÉÒÔ¿´µ½ÒýÆð±ÀÀ£µÄÏ̵߳ĶÑÕ»¸ú×ÙÈçÏÂËùʾ£º
    ¡¡¡¡

    ÒýÓÃ:
    ¡¡¡¡Current Java thread:
    ¡¡¡¡at com.aaa.bbb.qqq.Direct.setString(Native Method)
    ¡¡¡¡at com.aaa.bbb.qqq.PreparedStatement.setString(PreparedStatement.java:51)
    ¡¡¡¡- locked (a com.aaa.bbb.qqq.PreparedStatement)


    ¡¡¡¡Çåµ¥3
    ¡¡¡¡
    ¡¡¡¡×îºóÒ»¸öÖ´Ðеķ½·¨£¨setString£©ÊÇÀà¡°com.aaa.bbb.qqq.Direct¡±ÖеÄÒ»¸ö¡°Ô­Éú·½·¨¡±¡£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔÍƲâ³ö±ÀÀ£ÕýÊÇÓÉsetString·½·¨µÄʵÏÖÖеÄÔ­Éú´úÂëÒýÆðµÄ¡£±ÀÀ£µÄÔ­ÒòÒ²¿ÉÒÔ¹é½áΪʵÏÖJNI APIµÄJVM¿â´úÂëÓÐÎÊÌâ¡£

    ¡¡¡¡Äú»¹¿ÉÒÔ¿´µ½JVMÔÚ¶ÑÖиø³öÁËÏÂÃæµÄÐÅÏ¢£º
    ¡¡
    ÒýÓÃ:
    ¡¡¡¡Unexpected Signal : 11 occurred at PC=0x403AC9D1
    ¡¡¡¡Function=(null)+0x403AC9D1
    ¡¡¡¡Library=/opt/sunjdk/1.4.1_01-b01/jre/lib/i386/client/libjvm.so
    ¡¡¡¡# HotSpot Virtual Machine Error : 11
    ¡¡¡¡# Error ID : 4F530E43505002E6
    ¡¡¡¡# Please report this error at
    ¡¡¡¡# http://java.sun.com/cgi-bin/bugreport.cgi


    ¡¡¡¡ÕâÒâζ×ÅÒýÆð±ÀÀ££¨PC=0x403AC9D1£©µÄ´úÂëÊÇJVM¿âµÄÒ»²¿·Ö£º"/opt/sunjdk/1.4.1_01-b01/jre/lib/i386/client/libjvm.so"¡£µ«Õâ²¢²»±íʾJVMÒ»¶¨ÓÐbug¡£¾¡¹ÜÒýÆð±ÀÀ£µÄָʾÊÇÔÚJVM´úÂëÖУ¬µ«±ÀÀ£Ò²¿ÉÄÜÊÇÓÉÓÚÓ¦ÓóÌÐò´úÂ루ÕâÀïÊÇÖ¸Ô­Éú·½·¨setStringµÄʵÏÖ£©µÄJNIµ÷ÓÃÒýÆðµÄ£¬Ó¦ÓóÌÐò´úÂë¿ÉÄÜ´«µÝÁËһЩ´íÎóµÄ±äÁ¿£¬´Ó¶øµ¼ÖÂJVMÄ£¿éµÄ±ÀÀ£¡£

    ¡¡¡¡Èç¹ûÔÚ¶ÑÖÐûÓС°µ±Ç°Ï̡߳±µÄÐÅÏ¢£¬ÄÇôÎÒÃǾÍÐèÒª·ÖÎöºËÐĶѡ£ÕâÒ»ÄÚÈݲ»ÔÚ±¾ÎĵÄÌÖÂÛ·¶Î§Ö®ÖС£