Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
JVM֪ʶµã×ÜÀÀ-¸ß¼¶Java¹¤³ÌÊ¦ÃæÊԱر¸
 
  3330  次浏览      28
 2018-1-9
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚImportNew²©¿Í£¬±¾ÎÄÖ÷Òª¶ÔJVM½øÐÐÊáÀí£¬²¢Ïêϸ½éÉÜjvmÏà¹ØÖªÊ¶ÐèÒª¹Ø×¢µÄËùÓп¼²ìµã¡£

¶ÔÓڸ㿪·¢µÄÎÒÃÇÆäʵҲÊÇÒ»Ñù£¬ÏÖÔÚÁ÷ÐеĿò¼ÜÔ½À´Ô½¶à£¬·â×°µÄÒ²Ô½À´Ô½ÍêÉÆ£¬¸÷ÖÖ¿ò¼Ü¿ÉÒԸ㶨һÇУ¬¼¸ºõ²»ÓùØ×¢µ×²ãµÄʵÏÖ£¬³õ¼¶³ÌÐòÔ±Ö»ÒªÊìϤ»ù±¾µÄʹÓ÷½·¨£¬±ã¿ÉÒÔ¿ìËٵĿª·¢ÉÏÏߣ»µ«¶ÔÓڸ߼¶³ÌÐòÔ±À´½²£¬ÄÚ¹¦µÄÐÞÁ¶È´Ô½·¢µÄÖØÒª£¬±ÈÈçËã·¨¡¢Éè¼ÆÄ£Ê½¡¢µ×²ãÔ­ÀíµÈ£¬Ö»ÓаÑÕâЩ»ù´¡ÊìÁ·Ö®ºó£¬²ÅÄÜÔÚ¿ª·¢¹ý³ÌÖÐÖªÆäȻ֪ÆäËùÒÔÈ»£¬³öÏÖÎÊÌâʱÄÜ¿ìËÙ¶¨Î»µ½ÎÊÌâµÄ±¾ÖÊ¡£

¶ÔÓÚJava³ÌÐòÔ±À´½²£¬springÈ«¼ÒͰ¼¸ºõ¿ÉÒԸ㶨һÇУ¬springÈ«¼ÒͰ±ãÊǾ«ÃîµÄÕÐʽ£¬jvm¾ÍÊÇÄÚ¹¦ÐÄ·¨ºÜÖØÒªµÄÒ»¿é£¬ÏßÉϳöÏÖÐÔÄÜÎÊÌ⣬jvmµ÷ÓŸüÊDz»¿É»Ø±ÜµÄÎÊÌâ¡£Òò´ËJVM»ù´¡ÖªÊ¶¶ÔÓڸ߼¶³ÌÐòÔ±µÄÖØÒªÐÔ²»±ØÑÔÓÎÒ˾ÔÚÃæÊԸ߼¶¿ª·¢µÄʱºò£¬jvmÏà¹ØÖªÊ¶Ò²±Ø¶¨ÊÇ¿¼ºËµÄ±ê×¼Ö®Ò»¡£±¾ÆªÎÄÕ»á¸ù¾Ý֮ǰдµÄjvmϵÁÐÎÄÕÂÊáÀí³öjvmÐèÒª¹Ø×¢µÄËùÓп¼²ìµã¡£

jvm ×ÜÌåÊáÀí

jvmÌåϵ×ÜÌå·ÖËÄ´ó¿é£º

1.ÀàµÄ¼ÓÔØ»úÖÆ

2.jvmÄÚ´æ½á¹¹

3.GCËã·¨ À¬»ø»ØÊÕ

4.GC·ÖÎö ÃüÁîµ÷ÓÅ

µ±È»ÕâЩ֪ʶµãÔÚ֮ǰµÄÎÄÕÂÖж¼ÓÐÏêϸµÄ½éÉÜ£¬ÕâÀïÖ»×öÖ÷¸ÉµÄÊáÀí

ÕâÀï»­ÁËÒ»¸ö˼άµ¼Í¼£¬½«ËùÓеÄ֪ʶµã½øÐÐÁ˳ÂÁУ¬ÒòΪͼ±È½Ï´ó¿ÉÒÔµã»÷ÓÒ¼üÏÂÔØÁË·Å´ó²é¿´¡£

ÀàµÄ¼ÓÔØ»úÖÆ

Ö÷Òª¹Ø×¢µã£º

1.ʲôÊÇÀàµÄ¼ÓÔØ

2.ÀàµÄÉúÃüÖÜÆÚ

3.Àà¼ÓÔØÆ÷

4.Ë«Ç×ίÅÉÄ£ÐÍ

ʲôÊÇÀàµÄ¼ÓÔØ

ÀàµÄ¼ÓÔØÖ¸µÄÊǽ«ÀàµÄ.classÎļþÖеĶþ½øÖÆÊý¾Ý¶ÁÈëµ½ÄÚ´æÖУ¬½«Æä·ÅÔÚÔËÐÐʱÊý¾ÝÇøµÄ·½·¨ÇøÄÚ£¬È»ºóÔÚ¶ÑÇø´´½¨Ò»¸öjava.lang.Class¶ÔÏó£¬ÓÃÀ´·â×°ÀàÔÚ·½·¨ÇøÄÚµÄÊý¾Ý½á¹¹¡£ÀàµÄ¼ÓÔØµÄ×îÖÕ²úÆ·ÊÇλÓÚ¶ÑÇøÖеÄClass¶ÔÏó£¬Class¶ÔÏó·â×°ÁËÀàÔÚ·½·¨ÇøÄÚµÄÊý¾Ý½á¹¹£¬²¢ÇÒÏòJava³ÌÐòÔ±ÌṩÁË·ÃÎÊ·½·¨ÇøÄÚµÄÊý¾Ý½á¹¹µÄ½Ó¿Ú¡£

ÀàµÄÉúÃüÖÜÆÚ

ÀàµÄÉúÃüÖÜÆÚ°üÀ¨Õ⼸¸ö²¿·Ö£¬¼ÓÔØ¡¢Á¬½Ó¡¢³õʼ»¯¡¢Ê¹ÓúÍÐ¶ÔØ£¬ÆäÖÐǰÈý²¿ÊÇÀàµÄ¼ÓÔØµÄ¹ý³Ì,ÈçÏÂͼ£»

1.¼ÓÔØ£¬²éÕÒ²¢¼ÓÔØÀàµÄ¶þ½øÖÆÊý¾Ý£¬ÔÚJava¶ÑÖÐÒ²´´½¨Ò»¸öjava.lang.ClassÀàµÄ¶ÔÏó

2.Á¬½Ó£¬Á¬½ÓÓÖ°üº¬Èý¿éÄÚÈÝ£ºÑéÖ¤¡¢×¼±¸¡¢³õʼ»¯¡£1£©ÑéÖ¤£¬Îļþ¸ñʽ¡¢ÔªÊý¾Ý¡¢×Ö½ÚÂë¡¢·ûºÅÒýÓÃÑéÖ¤£»2£©×¼±¸£¬ÎªÀàµÄ¾²Ì¬±äÁ¿·ÖÅäÄڴ棬²¢½«Æä³õʼ»¯ÎªÄ¬ÈÏÖµ£»3£©½âÎö£¬°ÑÀàÖеķûºÅÒýÓÃת»»ÎªÖ±½ÓÒýÓÃ

3.³õʼ»¯£¬ÎªÀàµÄ¾²Ì¬±äÁ¿¸³ÓèÕýÈ·µÄ³õʼֵ

4.ʹÓã¬new³ö¶ÔÏó³ÌÐòÖÐʹÓÃ

5.Ð¶ÔØ£¬Ö´ÐÐÀ¬»ø»ØÊÕ

¼¸¸öСÎÊÌ⣿

1¡¢JVM³õʼ»¯²½Öè £¿ 2¡¢Àà³õʼ»¯Ê±»ú £¿3¡¢Äļ¸ÖÖÇé¿öÏ£¬JavaÐéÄâ»ú½«½áÊøÉúÃüÖÜÆÚ£¿

´ð°¸²Î¿¼ÕâÆªÎÄÕÂJVM£¨1£©£ºJava ÀàµÄ¼ÓÔØ»úÖÆ

Àà¼ÓÔØÆ÷

1.Æô¶¯Àà¼ÓÔØÆ÷£ºBootstrap ClassLoader£¬¸ºÔð¼ÓÔØ´æ·ÅÔÚJDK\jre\lib(JDK´ú±íJDKµÄ°²×°Ä¿Â¼£¬ÏÂͬ)Ï£¬»ò±»-Xbootclasspath²ÎÊýÖ¸¶¨µÄ·¾¶Öе쬲¢ÇÒÄܱ»ÐéÄâ»úʶ±ðµÄÀà¿â

2.À©Õ¹Àà¼ÓÔØÆ÷£ºExtension ClassLoader£¬¸Ã¼ÓÔØÆ÷ÓÉsun.misc.Launcher$ExtClassLoaderʵÏÖ£¬Ëü¸ºÔð¼ÓÔØDK\jre\lib\extĿ¼ÖУ¬»òÕßÓÉjava.ext.dirsϵͳ±äÁ¿Ö¸¶¨µÄ·¾¶ÖеÄËùÓÐÀà¿â£¨Èçjavax.*¿ªÍ·µÄÀࣩ£¬¿ª·¢Õß¿ÉÒÔÖ±½ÓʹÓÃÀ©Õ¹Àà¼ÓÔØÆ÷¡£

3.Ó¦ÓóÌÐòÀà¼ÓÔØÆ÷£ºApplication ClassLoader£¬¸ÃÀà¼ÓÔØÆ÷ÓÉsun.misc.Launcher$AppClassLoaderÀ´ÊµÏÖ£¬Ëü¸ºÔð¼ÓÔØÓû§Àà·¾¶£¨ClassPath£©ËùÖ¸¶¨µÄÀ࣬¿ª·¢Õß¿ÉÒÔÖ±½ÓʹÓøÃÀà¼ÓÔØÆ÷

Àà¼ÓÔØ»úÖÆ

1.È«Å̸ºÔ𣬵±Ò»¸öÀà¼ÓÔØÆ÷¸ºÔð¼ÓÔØÄ³¸öClassʱ£¬¸ÃClassËùÒÀÀµµÄºÍÒýÓÃµÄÆäËûClassÒ²½«ÓɸÃÀà¼ÓÔØÆ÷¸ºÔðÔØÈ룬³ý·ÇÏÔʾʹÓÃÁíÍâÒ»¸öÀà¼ÓÔØÆ÷À´ÔØÈë

2.¸¸ÀàίÍУ¬ÏÈÈø¸Àà¼ÓÔØÆ÷ÊÔͼ¼ÓÔØ¸ÃÀֻ࣬ÓÐÔÚ¸¸Àà¼ÓÔØÆ÷ÎÞ·¨¼ÓÔØ¸ÃÀàʱ²Å³¢ÊÔ´Ó×Ô¼ºµÄÀà·¾¶ÖмÓÔØ¸ÃÀà

3.»º´æ»úÖÆ£¬»º´æ»úÖÆ½«»á±£Ö¤ËùÓмÓÔØ¹ýµÄClass¶¼»á±»»º´æ£¬µ±³ÌÐòÖÐÐèҪʹÓÃij¸öClassʱ£¬Àà¼ÓÔØÆ÷ÏÈ´Ó»º´æÇøÑ°ÕÒ¸ÃClass£¬Ö»Óлº´æÇø²»´æÔÚ£¬ÏµÍ³²Å»á¶ÁÈ¡¸ÃÀà¶ÔÓ¦µÄ¶þ½øÖÆÊý¾Ý£¬²¢½«Æäת»»³ÉClass¶ÔÏ󣬴æÈ뻺´æÇø¡£Õâ¾ÍÊÇΪʲôÐÞ¸ÄÁËClassºó£¬±ØÐëÖØÆôJVM£¬³ÌÐòµÄÐ޸IJŻáÉúЧ

jvmÄÚ´æ½á¹¹

Ö÷Òª¹Ø×¢µã£º

1.jvmÄÚ´æ½á¹¹¶¼ÊÇʲô

2.¶ÔÏó·ÖÅ乿Ôò

jvmÄÚ´æ½á¹¹

·½·¨ÇøºÍ¶ÔÊÇËùÓÐÏ̹߳²ÏíµÄÄÚ´æÇøÓò£»¶øjavaÕ»¡¢±¾µØ·½·¨Õ»ºÍ³ÌÐòÔ±¼ÆÊýÆ÷ÊÇÔËÐÐÊÇÏß³Ì˽ÓеÄÄÚ´æÇøÓò¡£

1.Java¶Ñ£¨Heap£©,ÊÇJavaÐéÄâ»úËù¹ÜÀíµÄÄÚ´æÖÐ×î´óµÄÒ»¿é¡£Java¶ÑÊDZ»ËùÓÐÏ̹߳²ÏíµÄÒ»¿éÄÚ´æÇøÓò£¬ÔÚÐéÄâ»úÆô¶¯Ê±´´½¨¡£´ËÄÚ´æÇøÓòµÄΨһĿµÄ¾ÍÊÇ´æ·Å¶ÔÏóʵÀý£¬¼¸ºõËùÓеĶÔÏóʵÀý¶¼ÔÚÕâÀï·ÖÅäÄÚ´æ¡£

2.·½·¨Çø£¨Method Area£©,·½·¨Çø£¨Method Area£©ÓëJava¶ÑÒ»Ñù£¬ÊǸ÷¸öÏ̹߳²ÏíµÄÄÚ´æÇøÓò£¬ËüÓÃÓÚ´æ´¢Òѱ»ÐéÄâ»ú¼ÓÔØµÄÀàÐÅÏ¢¡¢³£Á¿¡¢¾²Ì¬±äÁ¿¡¢¼´Ê±±àÒëÆ÷±àÒëºóµÄ´úÂëµÈÊý¾Ý¡£

3.³ÌÐò¼ÆÊýÆ÷£¨Program Counter Register£©,³ÌÐò¼ÆÊýÆ÷£¨Program Counter Register£©ÊÇÒ»¿é½ÏСµÄÄÚ´æ¿Õ¼ä£¬ËüµÄ×÷ÓÿÉÒÔ¿´×öÊǵ±Ç°Ïß³ÌËùÖ´ÐеÄ×Ö½ÚÂëµÄÐкÅָʾÆ÷¡£

4.JVMÕ»£¨JVM Stacks£©,Óë³ÌÐò¼ÆÊýÆ÷Ò»Ñù£¬JavaÐéÄâ»úÕ»£¨Java Virtual Machine Stacks£©Ò²ÊÇÏß³Ì˽Óеģ¬ËüµÄÉúÃüÖÜÆÚÓëÏß³ÌÏàͬ¡£ÐéÄâ»úÕ»ÃèÊöµÄÊÇJava·½·¨Ö´ÐеÄÄÚ´æÄ£ÐÍ£ºÃ¿¸ö·½·¨±»Ö´ÐеÄʱºò¶¼»áͬʱ´´½¨Ò»¸öÕ»Ö¡£¨Stack Frame£©ÓÃÓÚ´æ´¢¾Ö²¿±äÁ¿±í¡¢²Ù×÷Õ»¡¢¶¯Ì¬Á´½Ó¡¢·½·¨³ö¿ÚµÈÐÅÏ¢¡£Ã¿Ò»¸ö·½·¨±»µ÷ÓÃÖ±ÖÁÖ´ÐÐÍê³ÉµÄ¹ý³Ì£¬¾Í¶ÔÓ¦×ÅÒ»¸öÕ»Ö¡ÔÚÐéÄâ»úÕ»ÖдÓÈëÕ»µ½³öÕ»µÄ¹ý³Ì¡£

5.±¾µØ·½·¨Õ»£¨Native Method Stacks£©,±¾µØ·½·¨Õ»£¨Native Method Stacks£©ÓëÐéÄâ»úÕ»Ëù·¢»ÓµÄ×÷ÓÃÊǷdz£ÏàËÆµÄ£¬ÆäÇø±ð²»¹ýÊÇÐéÄâ»úջΪÐéÄâ»úÖ´ÐÐJava·½·¨£¨Ò²¾ÍÊÇ×Ö½ÚÂ룩·þÎñ£¬¶ø±¾µØ·½·¨Õ»ÔòÊÇΪÐéÄâ»úʹÓõ½µÄNative·½·¨·þÎñ¡£

¶ÔÏó·ÖÅ乿Ôò

1.¶ÔÏóÓÅÏÈ·ÖÅäÔÚEdenÇø£¬Èç¹ûEdenÇøÃ»ÓÐ×ã¹»µÄ¿Õ¼äʱ£¬ÐéÄâ»úÖ´ÐÐÒ»´ÎMinor GC¡£

2.´ó¶ÔÏóÖ±½Ó½øÈëÀÏÄê´ú£¨´ó¶ÔÏóÊÇÖ¸ÐèÒª´óÁ¿Á¬ÐøÄÚ´æ¿Õ¼äµÄ¶ÔÏ󣩡£ÕâÑù×öµÄÄ¿µÄÊDZÜÃâÔÚEdenÇøºÍÁ½¸öSurvivorÇøÖ®¼ä·¢Éú´óÁ¿µÄÄڴ濽±´£¨ÐÂÉú´ú²ÉÓø´ÖÆËã·¨ÊÕ¼¯Äڴ棩¡£

3.³¤ÆÚ´æ»îµÄ¶ÔÏó½øÈëÀÏÄê´ú¡£ÐéÄâ»úΪÿ¸ö¶ÔÏó¶¨ÒåÁËÒ»¸öÄêÁ伯ÊýÆ÷£¬Èç¹û¶ÔÏó¾­¹ýÁË1´ÎMinor GCÄÇô¶ÔÏó»á½øÈëSurvivorÇø£¬Ö®ºóÿ¾­¹ýÒ»´ÎMinor GCÄÇô¶ÔÏóµÄÄêÁä¼Ó1£¬ÖªµÀ´ïµ½·§Öµ¶ÔÏó½øÈëÀÏÄêÇø¡£

4.¶¯Ì¬Åж϶ÔÏóµÄÄêÁä¡£Èç¹ûSurvivorÇøÖÐÏàͬÄêÁäµÄËùÓжÔÏó´óСµÄ×ܺʹóÓÚSurvivor¿Õ¼äµÄÒ»°ë£¬ÄêÁä´óÓÚ»òµÈÓÚ¸ÃÄêÁäµÄ¶ÔÏó¿ÉÒÔÖ±½Ó½øÈëÀÏÄê´ú¡£

5.¿Õ¼ä·ÖÅäµ£±£¡£Ã¿´Î½øÐÐMinor GCʱ£¬JVM»á¼ÆËãSurvivorÇøÒÆÖÁÀÏÄêÇøµÄ¶ÔÏóµÄƽ¾ù´óС£¬Èç¹ûÕâ¸öÖµ´óÓÚÀÏÄêÇøµÄÊ£ÓàÖµ´óСÔò½øÐÐÒ»´ÎFull GC£¬Èç¹ûСÓÚ¼ì²éHandlePromotionFailureÉèÖã¬Èç¹ûtrueÔòÖ»½øÐÐMonitor GC,Èç¹ûfalseÔò½øÐÐFull GC¡£

ÈçºÎͨ¹ý²ÎÊýÀ´¿ØÖƸö¸÷¸öÄÚ´æÇøÓò

²Î¿¼´ËÎÄÕ£ºJVM£¨2£©£ºJVMÄÚ´æ½á¹¹

GCËã·¨ À¬»ø»ØÊÕ

Ö÷Òª¹Ø×¢µã£º

1.¶ÔÏó´æ»îÅжÏ

2.GCËã·¨

3.À¬»ø»ØÊÕÆ÷

¶ÔÏó´æ»îÅжÏ

Åж϶ÔÏóÊÇ·ñ´æ»îÒ»°ãÓÐÁ½ÖÖ·½Ê½£º

1.ÒýÓüÆÊý£ºÃ¿¸ö¶ÔÏóÓÐÒ»¸öÒýÓüÆÊýÊôÐÔ£¬ÐÂÔöÒ»¸öÒýÓÃʱ¼ÆÊý¼Ó1£¬ÒýÓÃÊÍ·Åʱ¼ÆÊý¼õ1£¬¼ÆÊýΪ0ʱ¿ÉÒÔ»ØÊÕ¡£´Ë·½·¨¼òµ¥£¬ÎÞ·¨½â¾ö¶ÔÏóÏ໥ѭ»·ÒýÓõÄÎÊÌâ¡£

2.¿É´ïÐÔ·ÖÎö£¨Reachability Analysis£©£º´ÓGC Roots¿ªÊ¼ÏòÏÂËÑË÷£¬ËÑË÷Ëù×ß¹ýµÄ·¾¶³ÆÎªÒýÓÃÁ´¡£µ±Ò»¸ö¶ÔÏóµ½GC RootsûÓÐÈκÎÒýÓÃÁ´ÏàÁ¬Ê±£¬ÔòÖ¤Ã÷´Ë¶ÔÏóÊDz»¿ÉÓõ쬲»¿É´ï¶ÔÏó¡£

GCËã·¨

GC×î»ù´¡µÄËã·¨ÓÐÈýÖÖ£º±ê¼Ç -Çå³ýËã·¨¡¢¸´ÖÆËã·¨¡¢±ê¼Ç-ѹËõËã·¨£¬ÎÒÃdz£ÓõÄÀ¬»ø»ØÊÕÆ÷Ò»°ã¶¼²ÉÓ÷ִúÊÕ¼¯Ëã·¨¡£

1.±ê¼Ç -Çå³ýËã·¨£¬¡°±ê¼Ç-Çå³ý¡±£¨Mark-Sweep£©Ëã·¨£¬ÈçËüµÄÃû×ÖÒ»Ñù£¬Ëã·¨·ÖΪ¡°±ê¼Ç¡±ºÍ¡°Çå³ý¡±Á½¸ö½×¶Î£ºÊ×Ïȱê¼Ç³öËùÓÐÐèÒª»ØÊյĶÔÏó£¬ÔÚ±ê¼ÇÍê³Éºóͳһ»ØÊÕµôËùÓб»±ê¼ÇµÄ¶ÔÏó¡£

2.¸´ÖÆËã·¨£¬¡°¸´ÖÆ¡±£¨Copying£©µÄÊÕ¼¯Ëã·¨£¬Ëü½«¿ÉÓÃÄÚ´æ°´ÈÝÁ¿»®·ÖΪ´óСÏàµÈµÄÁ½¿é£¬Ã¿´ÎֻʹÓÃÆäÖеÄÒ»¿é¡£µ±ÕâÒ»¿éµÄÄÚ´æÓÃÍêÁË£¬¾Í½«»¹´æ»î×ŵĶÔÏó¸´ÖƵ½ÁíÍâÒ»¿éÉÏÃæ£¬È»ºóÔÙ°ÑÒÑʹÓùýµÄÄÚ´æ¿Õ¼äÒ»´ÎÇåÀíµô¡£

3.±ê¼Ç-ѹËõËã·¨£¬±ê¼Ç¹ý³ÌÈÔÈ»Óë¡°±ê¼Ç-Çå³ý¡±Ëã·¨Ò»Ñù£¬µ«ºóÐø²½Öè²»ÊÇÖ±½Ó¶Ô¿É»ØÊÕ¶ÔÏó½øÐÐÇåÀí£¬¶øÊÇÈÃËùÓдæ»îµÄ¶ÔÏó¶¼ÏòÒ»¶ËÒÆ¶¯£¬È»ºóÖ±½ÓÇåÀíµô¶Ë±ß½çÒÔÍâµÄÄÚ´æ

4.·Ö´úÊÕ¼¯Ëã·¨£¬¡°·Ö´úÊÕ¼¯¡±£¨Generational Collection£©Ëã·¨£¬°ÑJava¶Ñ·ÖΪÐÂÉú´úºÍÀÏÄê´ú£¬ÕâÑù¾Í¿ÉÒÔ¸ù¾Ý¸÷¸öÄê´úµÄÌØµã²ÉÓÃ×îÊʵ±µÄÊÕ¼¯Ëã·¨¡£

À¬»ø»ØÊÕÆ÷

1.SerialÊÕ¼¯Æ÷£¬´®ÐÐÊÕ¼¯Æ÷ÊÇ×î¹ÅÀÏ£¬×îÎȶ¨ÒÔ¼°Ð§ÂʸߵÄÊÕ¼¯Æ÷£¬¿ÉÄÜ»á²úÉú½Ï³¤µÄÍ£¶Ù£¬Ö»Ê¹ÓÃÒ»¸öÏß³ÌÈ¥»ØÊÕ¡£

2.ParNewÊÕ¼¯Æ÷£¬ParNewÊÕ¼¯Æ÷Æäʵ¾ÍÊÇSerialÊÕ¼¯Æ÷µÄ¶àḬ̈߳汾¡£

3.ParallelÊÕ¼¯Æ÷£¬Parallel ScavengeÊÕ¼¯Æ÷ÀàËÆParNewÊÕ¼¯Æ÷£¬ParallelÊÕ¼¯Æ÷¸ü¹Ø×¢ÏµÍ³µÄÍÌÍÂÁ¿¡£

4.Parallel Old ÊÕ¼¯Æ÷£¬Parallel OldÊÇParallel ScavengeÊÕ¼¯Æ÷µÄÀÏÄê´ú°æ±¾£¬Ê¹ÓöàÏ̺߳͡°±ê¼Ç£­ÕûÀí¡±Ëã·¨

5.CMSÊÕ¼¯Æ÷£¬CMS£¨Concurrent Mark Sweep£©ÊÕ¼¯Æ÷ÊÇÒ»ÖÖÒÔ»ñÈ¡×î¶Ì»ØÊÕÍ£¶Ùʱ¼äΪĿ±êµÄÊÕ¼¯Æ÷¡£

6.G1ÊÕ¼¯Æ÷£¬G1 (Garbage-First)ÊÇÒ»¿îÃæÏò·þÎñÆ÷µÄÀ¬»øÊÕ¼¯Æ÷,Ö÷ÒªÕë¶ÔÅ䱸¶à¿Å´¦ÀíÆ÷¼°´óÈÝÁ¿ÄÚ´æµÄ»úÆ÷. ÒÔ¼«¸ß¸ÅÂÊÂú×ãGCÍ£¶Ùʱ¼äÒªÇóµÄͬʱ,»¹¾ß±¸¸ßÍÌÍÂÁ¿ÐÔÄÜÌØÕ÷

GCËã·¨ºÍÀ¬»ø»ØÊÕÆ÷Ë㷨ͼ½âÒÔ¼°¸üÏêϸÄÚÈݲο¼JVM£¨3£©£ºJava GCËã·¨ À¬»øÊÕ¼¯Æ÷

GC·ÖÎö ÃüÁîµ÷ÓÅ

Ö÷Òª¹Ø×¢µã£º

1.GCÈÕÖ¾·ÖÎö

2.µ÷ÓÅÃüÁî

3.µ÷ÓŹ¤¾ß

GCÈÕÖ¾·ÖÎö

ժ¼GCÈÕÖ¾Ò»²¿·Ö£¨Ç°²¿·ÖΪÄêÇá´úgc»ØÊÕ£»ºó²¿·ÖΪfull gc»ØÊÕ£©£º

2016-07-05T10:43:18.093+0800: 25.395: [GC [PSYoungGen: 274931K->10738K(274944K)] 371093K->147186K(450048K), 0.0668480 secs] [Times: user=0.17 sys=0.08, real=0.07 secs]
2016-07-05T10:43:18.160+0800: 25.462: [Full GC [PSYoungGen: 10738K->0K(274944K)] [ParOldGen: 136447K->140379K(302592K)] 147186K->140379K(577536K) [PSPermGen: 85411K->85376K(171008K)], 0.6763541 secs] [Times: user=1.75 sys=0.02, real=0.68 secs]

ͨ¹ýÉÏÃæÈÕÖ¾·ÖÎöµÃ³ö£¬PSYoungGen¡¢ParOldGen¡¢PSPermGenÊôÓÚParallelÊÕ¼¯Æ÷¡£ÆäÖÐPSYoungGen±íʾgc»ØÊÕǰºóÄêÇá´úµÄÄÚ´æ±ä»¯£»ParOldGen±íʾgc»ØÊÕǰºóÀÏÄê´úµÄÄÚ´æ±ä»¯£»PSPermGen±íʾgc»ØÊÕǰºóÓÀ¾ÃÇøµÄÄÚ´æ±ä»¯¡£young gc Ö÷ÒªÊÇÕë¶ÔÄêÇá´ú½øÐÐÄÚ´æ»ØÊÕ±È½ÏÆµ·±£¬ºÄʱ¶Ì£»full gc »á¶ÔÕû¸ö¶ÑÄÚ´æ½øÐлسǣ¬ºÄʱ³¤£¬Òò´ËÒ»°ã¾¡Á¿¼õÉÙfull gcµÄ´ÎÊý

young gc ÈÕÖ¾:

Full GCÈÕÖ¾:

µ÷ÓÅÃüÁî

Sun JDK¼à¿ØºÍ¹ÊÕÏ´¦ÀíÃüÁîÓÐjps jstat jmap jhat jstack jinfo

1.jps£¬JVM Process Status Tool,ÏÔʾָ¶¨ÏµÍ³ÄÚËùÓеÄHotSpotÐéÄâ»ú½ø³Ì¡£

2.jstat£¬JVM statistics MonitoringÊÇÓÃÓÚ¼àÊÓÐéÄâ»úÔËÐÐʱ״̬ÐÅÏ¢µÄÃüÁËü¿ÉÒÔÏÔʾ³öÐéÄâ»ú½ø³ÌÖеÄÀà×°ÔØ¡¢ÄÚ´æ¡¢À¬»øÊÕ¼¯¡¢JIT±àÒëµÈÔËÐÐÊý¾Ý¡£

3.jmap£¬JVM Memory MapÃüÁîÓÃÓÚÉú³Éheap dumpÎļþ

4.jhat£¬JVM Heap Analysis ToolÃüÁîÊÇÓëjmap´îÅäʹÓã¬ÓÃÀ´·ÖÎöjmapÉú³ÉµÄdump£¬jhatÄÚÖÃÁËÒ»¸ö΢Ð͵ÄHTTP/HTML·þÎñÆ÷£¬Éú³ÉdumpµÄ·ÖÎö½á¹ûºó£¬¿ÉÒÔÔÚä¯ÀÀÆ÷Öв鿴

5.jstack£¬ÓÃÓÚÉú³ÉjavaÐéÄâ»úµ±Ç°Ê±¿ÌµÄÏ߳̿ìÕÕ¡£

6.jinfo£¬JVM Configuration info Õâ¸öÃüÁî×÷ÓÃÊÇʵʱ²é¿´ºÍµ÷ÕûÐéÄâ»úÔËÐвÎÊý¡£

ÏêϸµÄÃüÁîʹÓòο¼ÕâÀïJVM£¨4£©£ºJvmµ÷ÓÅ-ÃüÁîÆª

µ÷ÓŹ¤¾ß

³£Óõ÷ÓŹ¤¾ß·ÖΪÁ½Àà,jdk×Ô´ø¼à¿Ø¹¤¾ß£ºjconsoleºÍjvisualvm£¬µÚÈý·½ÓУºMAT(Memory Analyzer Tool)¡¢GChisto¡£

1.jconsole£¬Java Monitoring and Management ConsoleÊÇ´Ójava5¿ªÊ¼£¬ÔÚJDKÖÐ×Ô´øµÄjava¼à¿ØºÍ¹ÜÀí¿ØÖÆÌ¨£¬ÓÃÓÚ¶ÔJVMÖÐÄڴ棬Ï̺߳ÍÀàµÈµÄ¼à¿Ø

2.jvisualvm£¬jdk×Ô´øÈ«Äܹ¤¾ß£¬¿ÉÒÔ·ÖÎöÄÚ´æ¿ìÕÕ¡¢Ï߳̿ìÕÕ£»¼à¿ØÄÚ´æ±ä»¯¡¢GC±ä»¯µÈ¡£

3.MAT£¬Memory Analyzer Tool£¬Ò»¸ö»ùÓÚEclipseµÄÄÚ´æ·ÖÎö¹¤¾ß£¬ÊÇÒ»¸ö¿ìËÙ¡¢¹¦ÄܷḻµÄJava heap·ÖÎö¹¤¾ß£¬Ëü¿ÉÒÔ°ïÖúÎÒÃDzéÕÒÄÚ´æÐ¹Â©ºÍ¼õÉÙÄÚ´æÏûºÄ

4.GChisto£¬Ò»¿îרҵ·ÖÎögcÈÕÖ¾µÄ¹¤¾ß

   
3330 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö