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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Java GC »úÖÆÓëÄÚ´æ·ÖÅä²ßÂÔ
 
À´Ô´£ºcsdn  ·¢²¼ÓÚ 2017-2-24
  1603  次浏览      27
 

ÊÕ¼¯Ëã·¨ÊÇÄÚ´æ»ØÊյķ½·¨ÂÛ£¬À¬»øÊÕ¼¯Æ÷ÊÇÄÚ´æ»ØÊյľßÌåʵÏÖ

×Ô¶¯ÄÚ´æ¹ÜÀí½â¾öµÄÊÇ£º¸ø¶ÔÏó·ÖÅäÄÚ´æ ÒÔ¼° »ØÊÕ·ÖÅ䏸¶ÔÏóµÄÄÚ´æ

ΪʲôÎÒÃÇÒªÁ˽âѧϰ GC ÓëÄÚ´æ·ÖÅäÄØ£¿

ÔÚ JVM ×Ô¶¯ÄÚ´æ¹ÜÀí»úÖÆµÄ°ïÖúÏ£¬²»ÔÙÐèҪΪÿһ¸önew²Ù×÷дÅä¶ÔµÄdelete/free´úÂë¡£µ«³öÏÖÄÚ´æÐ¹Â©ºÍÒç³öµÄÎÊÌâʱ£¬Èç¹û²»Á˽âÐéÄâ»úÊÇÔõÑùʹÓÃÄÚ´æµÄ£¬ÄÇôÅŲé´íÎó½«ÊÇÒ»Ïî·Ç³£¼èÄѵŤ×÷¡£

GC£¨À¬»øÊÕ¼¯Æ÷£©ÔڶԶѽøÐлØÊÕǰ£¬»áÏÈÈ·¶¨ÄÄЩ¶ÔÏó¡°´æ»î¡±£¬ÄÄЩÒѾ­¡°ËÀÈ¥¡±¡£ÄÇô¾ÍÓÐÁË ¶ÔÏó´æ»îÅж¨Ëã·¨ ¡£

¶ÔÏó´æ»îÅж¨Ëã·¨

ÒýÓüÆÊýËã·¨£º

Ë㷨˼Ï룺¸ø¶ÔÏóÖÐÌí¼ÓÒ»¸öÒýÓüÆÊýÆ÷£¬Ã¿µ±ÓÐÒ»¸öµØ·½ÒýÓÃËüʱ£¬¼ÆÊýÆ÷Öµ¼Ó1£¬µ±ÒýÓÃʧЧʱ£¬¼ÆÊýÆ÷Öµ¼õ1£¬ÈκÎʱ¿Ì¼ÆÊýÆ÷Ϊ0µÄ¶ÔÏó¾ÍÊDz»¿ÉÄÜÔÙ±»Ê¹Óõġ£

Óŵ㣺ʵÏÖ¼òµ¥£¬ÅжÏЧÂÊÒ²ºÜ¸ß

ȱµã£ººÜÄѽâ¾ö¶ÔÏóÖ®¼äÏ໥ѭ»·ÒýÓõÄÎÊÌâ

¿É´ïÐÔ·ÖÎöËã·¨£º

Ë㷨˼Ï룺ͨ¹ýһϵÁеġ°GC Roots¡±¶ÔÏó×÷ΪÆðʼµã£¬´ÓÕâЩ½Úµã¿ªÊ¼ÏòÏÂËÑË÷£¬ËÑË÷Ëù×ß¹ýµÄ·¾¶³ÆÎªÒýÓÃÁ´£¬µ±Ò»¸ö¶ÔÏóµ½ GC Roots ûÓÐÈκÎÒýÓÃÁ´ÏàÁ¬Ê±£¬ÔòÖ¤Ã÷´Ë¶ÔÏóÊDz»¿ÉÓõġ£

Èçͼ£ºobject5¡¢object6¡¢object7ËäÈ»»¥ÏàÓйØÁª£¬µ«ÊÇËüÃǵ½GC RootsÊDz»¿É´ïµÄ£¬ËùÒÔËüÃǽ«»á±»Åж¨ÎªÊǿɻØÊյĶÔÏó¡£

¿É×÷Ϊ GC Roots µÄ¶ÔÏó°üÀ¨ÒÔÏ£º

1.ÐéÄâ»úÕ»ÖÐÒýÓõĶÔÏó

2.·½·¨ÇøÖÐÀྲ̬ÊôÐÔÒýÓõĶÔÏó

3.·½·¨ÇøÖг£Á¿ÒýÓõĶÔÏó

4.±¾µØ·½·¨Õ»ÖÐ JNI ÒýÓõĶÔÏó

Éú´æ»¹ÊÇËÀÍö£¿

¼´Ê¹ÔÚ¿É´ïÐÔ·ÖÎöËã·¨Öв»¿É´ïµÄ¶ÔÏó£¬Ò²²¢·ÇÊÇ¡°·ÇËÀ²»¿É¡±µÄ£¬ÕâʱºòËûÃÇÔÝʱ´¦ÓÚ¡°»ºÐÌ¡±½×¶Î£¬ÒªÕæÕýÐû¸æÒ»¸ö¶ÔÏóËÀÍö£¬ÖÁÉÙÒª¾­ÀúÁ½´Î±ê¼Ç¹ý³Ì£º

Èç¹û¶ÔÏóÔÚ½øÐпɴïÐÔ·ÖÎöºó·¢ÏÖûÓÐÓëGC RootsÏàÁ¬½ÓµÄÒýÓÃÁ´£¬ÄÇËü½«»á±»µÚÒ»´Î±ê¼Ç²¢ÇÒ½øÐÐÒ»´Îɸѡ£¬É¸Ñ¡µÄÌõ¼þÊǴ˶ÔÏóÊÇ·ñÓбØÒªÖ´ÐÐfinalize()·½·¨£¬µ±¶ÔÏóûÓи²¸Çfinalize()·½·¨£¬»òÕßfinalize()·½·¨ÒѾ­±»ÐéÄâ»úµ÷Óùý£¬ÐéÄâ»ú½«ÕâÁ½ÖÖÇé¿ö¶¼ÊÓΪ¡°Ã»ÓбØÒªÖ´ÐС±¡£

Èç¹ûÕâ¸ö¶ÔÏó±»Åж¨ÎªÓбØÒªÖ´ÐÐfinalize()·½·¨£¬ÄÇôÕâ¸ö¶ÔÏ󽫻á·ÅÖÃÔÚÒ»¸ö½Ð×öF-QueueµÄ¶ÓÁÐÖУ¬²¢ÔÚÉÔºóÓÉÒ»¸öÓÉÐéÄâ»ú×Ô¶¯½¨Á¢µÄ¡¢µÍÓÅÏȼ¶µÄFinalizerÏß³ÌÈ¥Ö´ÐÐËü£¬ÕâÀïËùνµÄ¡°Ö´ÐС±ÊÇÖ¸ÐéÄâ»ú»á´¥·¢Õâ¸ö·½·¨£¬µ«²¢²»³Ðŵ»áµÈ´ýËüÔËÐнáÊø£¬ÕâÑù×öµÄÔ­ÒòÊÇ£ºÈç¹ûÒ»¸ö¶ÔÏóÔÚfinalize()·½·¨ÖÐÖ´ÐлºÂý£¬»òÕß·¢ÉúÁËËÀÑ­»·£¬½«ºÜ¿ÉÄܻᵼÖÂF-Queue¶ÓÁÐÖÐÆäËû¶ÔÏóÓÀ¾Ã´¦Óڵȴý£¬ÉõÖÁµ¼ÖÂÕû¸öÄÚ´æ»ØÊÕϵͳµÄ±¼À£¡£

finalize()·½·¨ÊǶÔÏóÌÓÍÑËÀÍöÃüÔ˵Ä×îºóÒ»´Î»ú»á£¬ÉÔºóGC½«¶ÔF-QueueÖеĶÔÏó½øÐеڶþ´ÎС¹æÄ£µÄ±ê¼Ç£¬Èç¹û¶ÔÏóÒªÔÚfinalize()·½·¨Öгɹ¦Õü¾È×Ô¼º£¬Ö»ÐèÖØÐÂÓëÒýÓÃÁ´ÉϵÄÈκÎÒ»¸ö¶ÔÏó½¨Á¢¹ØÁª¼´¿É£¬±ÈÈç°Ñ×Ô¼º£¨this¹Ø¼ü×Ö£©¸³Öµ¸øÄ³¸öÀà±äÁ¿»òÕß¶ÔÏóµÄ³ÉÔ±±äÁ¿£¬ÄÇÔÚµÚ¶þ´Î±ê¼ÇʱËü½«±»ÒƳý³ö¡°¼´½«»ØÊÕ¡°µÄ¼¯ºÏ£¬Èç¹û¶ÔÏóÕâʱºò»¹Ã»ÓÐÌÓÍÑ£¬ÄÇ»ù±¾ÉÏËü¾ÍÕæµÄ±»»ØÊÕÁË¡£

ÁíÍ⣬ÈκÎÒ»¸ö¶ÔÏóµÄfinalize()·½·¨¶¼Ö»»á±»ÏµÍ³×Ô¶¯µ÷ÓÃÒ»´Î¡£finalize()ÄÜ×öµÄËùÓй¤×÷£¬Ê¹ÓÃtry-finally»òÕ߯äËû·½Ê½¶¼¿ÉÒÔ×öµÄ¸üºÃ£¬¸ü¼°Ê±£¬ËùÒÔ½¨Òé´ó¼ÒÍêÈ«¿ÉÒÔÍüµôJavaÓïÑÔÖÐÓÐÕâ¸ö·½·¨µÄ´æÔÚ¡£Ïê¼û¡¶ÉîÈëÀí½âJavaÐéÄâ»ú¡·

À¬»øÊÕ¼¯Ëã·¨

±ê¼Ç-Çå³ýËã·¨£º

Ëã·¨·ÖΪ¡°±ê¼Ç¡°ºÍ¡±Çå³ý¡°Á½¸ö½×¶Î£º

Ê×Ïȱê¼Ç³öËùÓÐÐèÒª»ØÊյĶÔÏó£¬ÔÚ±ê¼ÇÍê³Éºóͳһ»ØÊÕËùÓб»±ê¼ÇµÄ¶ÔÏó

²»×ãÖ®´¦£º

ЧÂÊÎÊÌ⣬±ê¼ÇºÍÇå³ýÁ½¸ö¹ý³ÌµÄЧÂʶ¼²»¸ß¡£

¿Õ¼äÎÊÌ⣺±ê¼ÇÇå³ýÖ®ºó»á²úÉú´óÁ¿²»Á¬ÐøµÄÄÚ´æË鯬£¬¿Õ¼äËéÆ¬Ì«¶à¿ÉÄܻᵼÖÂÒÔºóÔÚ³ÌÐòÔËÐйý³ÌÖÐÐèÒª·ÖÅä½Ï´ó¶ÔÏóʱ£¬ÎÞ·¨ÕÒµ½×ã¹»µÄÁ¬ÐøÄÚ´æ¶ø²»µÃ²»Ìáǰ´¥·¢ÁíÒ»´ÎÀ¬»øÊÕ¼¯¶¯×÷

¸´ÖÆËã·¨£º

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

ÕâÑùʹµÃÿ´Î¶¼ÊǶÔÕû¸ö°ëÇø½øÐÐÄÚ´æ»ØÊÕ£¬ÄÚ´æ·ÖÅäʱҲ¾Í²»Óÿ¼ÂÇÄÚ´æË鯬µÈ¸´ÔÓÇé¿ö£¬Ö»ÒªÒƶ¯¶Ñ¶¥Ö¸Õ룬°´Ë³Ðò·ÖÅäÄÚ´æ¼´¿É¡£ÊµÏÖ¼òµ¥£¬ÔËÐиßЧ¡£Ëã·¨µÄ´ú¼ÛÊǽ²ÄÚ´æËõСΪÁËÔ­À´µÄÒ»°ë£¬Î´ÃâÌ«¸ßÁ˵㡣

±ê¼Ç-ÕûÀíËã·¨£º

Ë㷨ʵÏÖ£º±ê¼Ç³öËùÓÐÐèÒª»ØÊյĶÔÏó¡¢ÈÃËùÓдæ»îµÄ¶ÔÏó¶¼ÏòÒ»¶ËÒÆ¶¯¡£È»ºóÖ±½ÓÇåÀíµô¶Ë±ß½çÒÔÍâµÄÄÚ´æ¡£

·Ö´úÊÕ¼¯Ëã·¨£º

Ë㷨ʵÏÖ£º¸ù¾Ý¶ÔÏó´æ»îÖÜÆÚµÄ²»Í¬½«ÄÚ´æ»®·ÖΪ¼¸¿é£¬Ò»°ãÊǰÑJava¶Ñ·ÖΪÐÂÉú´úºÍÀÏÄê´ú£¬ÕâÑù¾Í¿ÉÒÔ¸ù¾Ý¸÷¸öÄê´úµÄÌØµã²ÉÓÃ×îÊʵ±µÄÊÕ¼¯Ëã·¨¡£

ÔÚÐÂÉú´úÖУ¬Ã¿´ÎÀ¬»øÊÕ¼¯Ê±¶¼·¢ÏÖÓдóÅú¶ÔÏóËÀÈ¥£¬Ö»ÓÐÉÙÁ¿´æ»î£¬ÄǾÍÑ¡Óø´ÖÆËã·¨¡£Ö»ÐèÒª¸¶³öÉÙÁ¿´æ»î¶ÔÏóµÄ¸´ÖƳɱ¾¾Í¿ÉÒÔÍê³ÉÊÕ¼¯¡£

¶øÀÏÄê´úÖÐÒòΪ¶ÔÏó´æ»îÂʸߡ¢Ã»ÓжîÍâ¿Õ¼ä¶ÔËü½øÐзÖÅäµ£±££¬¾Í±ØÐëʹÓá°±ê¼Ç-ÇåÀí¡°»òÕß¡±±ê¼Ç-ÕûÀí¡°Ëã·¨À´½øÐлØÊÕ¡£

ÐÂÉú´ú :·ÖΪÈý¸ö¿Õ¼ä£¬Ò»¸öEden¿Õ¼ä £¬Á½¸öSurvivor¿Õ¼ä¡£

¾ø´ó¶àÊý×îб»´´½¨µÄ¶ÔÏó»á±»·ÖÅäµ½ÕâÀÓÉÓڴ󲿷ֶÔÏóÔÚ´´½¨ºó»áºÜ¿ì±äµÃ²»¿Éµ½´ï£¬ËùÒԺܶà¶ÔÏó±»´´½¨ÔÚÐÂÉú´ú£¬È»ºóÏûʧ¡£¶ÔÏó´ÓÕâ¸öÇøÓòÏûʧµÄ¹ý³ÌÎÒÃdzÆÖ®Îª¡±minor GC¡°¡£

ÀÏÄê´ú :¶ÔÏóûÓбäµÃ²»¿É´ï£¬²¢ÇÒ´ÓÐÂÉú´úÖдæ»îÏÂÀ´£¬»á±»¿½±´µ½ÕâÀï¡£ÆäËùÕ¼ÓõĿռäÒª±ÈÐÂÉú´ú¶à¡£Ò²ÕýÓÉÓÚÆäÏà¶Ô½Ï´óµÄ¿Õ¼ä£¬·¢ÉúÔÚÀÏÄê´úÉϵÄGCÒª±ÈÐÂÉú´úÉٵöࡣ¶ÔÏó´ÓÀÏÄê´úÖÐÏûʧµÄ¹ý³Ì£¬ÎÒÃdzÆÖ®Îª¡±major GC¡°£¨»òÕß¡±full GC¡°£©

¾ø´ó¶àÊý¸Õ¸Õ±»´´½¨µÄ¶ÔÏó»á´æ·ÅÔÚEden¿Õ¼ä¡£ÔÚEden¿Õ¼äÖ´ÐÐÁ˵ÚÒ»´ÎGCÖ®ºó£¬´æ»îµÄ¶ÔÏó±»Òƶ¯µ½ÆäÖÐÒ»¸öSurvivor¿Õ¼ä¡£´Ëºó£¬ÔÚEden¿Õ¼äÖ´ÐÐGCÖ®ºó£¬´æ»îµÄ¶ÔÏó»á±»¶Ñ»ýÔÚͬһ¸öSurvivor¿Õ¼ä¡£µ±Ò»¸öSurvivor¿Õ¼ä±¥ºÍ£¬»¹ÔÚ´æ»îµÄ¶ÔÏó»á±»Òƶ¯µ½ÁíÒ»¸öSurvivor¿Õ¼ä¡£Ö®ºó»áÇå¿ÕÒѾ­±¥ºÍµÄÄǸöSurvivor¿Õ¼ä¡£

ÔÚÒÔÉϵIJ½ÖèÖÐÖØ¸´¼¸´ÎÒÀÈ»´æ»îµÄ¶ÔÏó£¬¾Í»á±»ÒÆ¶¯µ½ÀÏÄê´ú¡£

À¬»øÊÕ¼¯Æ÷

ÈçͼÊÇ×÷ÓÃÓÚ²»Í¬·Ö´úµÄÀ¬»øÊÕ¼¯Æ÷£¬Èç¹ûÁ½¸öÊÕ¼¯Æ÷Ö®¼ä´æÔÚÁ¬Ïߣ¬¾Í¿ÉÒÔ´îÅäʹÓá£ÐéÄâ»úËùÔÚµÄÇøÓò£¬Ôò±íʾËüÊÇÊôÓÚÐÂÉú´úÊÕ¼¯Æ÷»¹ÊÇÀÏÄê´úÊÕ¼¯Æ÷¡£

ѧϰ¸÷ÖÖÀ¬»øÊÕ¼¯Æ÷֮ǰÏÈÁ˽âÏ¡°Stop the World¡°¡£¡°Stop the World¡°»áÔÚÈκÎÒ»ÖÖGCËã·¨Öз¢Éú¡£¡°Stop the World¡°Òâζ×Å JVM ÒòΪҪִÐÐGC¶øÍ£Ö¹ÁËÓ¦ÓóÌÐòµÄÖ´ÐС£µ±¡°Stop the World¡°·¢Éúʱ£¬³ýÁËGCËùÐèµÄÏß³ÌÒÔÍ⣬ËùÓÐÏ̶߳¼´¦Óڵȴý״̬£¬Ö±µ½GCÈÎÎñÍê³É¡£GCÓÅ»¯ºÜ¶àʱºò¾ÍÊÇÖ¸¼õÉÙ¡°Stop the World¡°·¢ÉúµÄʱ¼ä¡£

¡°Stop the World¡°ÕâÑùÀí½âºÜÐÎÏó£ºÄãÂèÂèÔÚ¸øÄã´òɨ·¿¼äµÄʱºò£¬¿Ï¶¨Ò²»áÈÃÄãÀÏÀÏʵʵµØÔÚÒÎ×ÓÉÏ»òÕß·¿¼äÍâµÈ´ý×Å£¬Èç¹ûËýÒ»±ß´òɨ£¬ÄãÒ»±ßÂÒÈÓֽм£¬Õâ·¿¼ä»¹ÄÜ´òɨÍꣿ

SerialÊÕ¼¯Æ÷£ºµ¥Ị̈߳¬ÐÂÉú´úÊÕ¼¯Æ÷£¬Ê¹Óø´ÖÆËã·¨¡£ËüÖ»»áʹÓÃÒ»¸öCPU»òÒ»ÌõÊÕ¼¯Ïß³ÌÈ¥Íê³ÉÀ¬»øÊÕ¼¯¹¤×÷£¬ÔÚ½øÐÐÀ¬»øÊÕ¼¯Ê±£¬±ØÐë¡°Stop the World¡°£¬ÔÝÍ£ÌæËûËùÓеŤ×÷Ị̈߳¬Ö±µ½ËüÊÕ¼¯½áÊø¡£

ParNewÊÕ¼¯Æ÷£ºSerialÊÕ¼¯Æ÷µÄ¶àḬ̈߳汾£¬¿ØÖƲÎÊý¡¢ÊÕ¼¯Ëã·¨¡¢Stop the World¡¢¶ÔÏó·ÖÅ乿Ôò¡¢»ØÊÕ²ßÂÔ¶¼ÓëSerialÊÕ¼¯Æ÷ÍêȫһÑù

Parallel ScavengeÊÕ¼¯Æ÷£ºÉú´úÊÕ¼¯Æ÷£¬Ê¹Óø´ÖÆËã·¨£¬²¢ÐжàÏ̡߳£

Serial OldÊÕ¼¯Æ÷£ºSerialÊÕ¼¯Æ÷µÄÀÏÄê´ú°æ±¾£¬µ¥Ị̈߳¬Ê¹Óñê¼Ç-ÕûÀíËã·¨¡£

Parallel OldÊÕ¼¯Æ÷£ºParallel ScavengeÊÕ¼¯Æ÷µÄÀÏÄê´ú°æ±¾£¬¶àỊ̈߳¬Ê¹Óñê¼Ç-ÕûÀíËã·¨

CMSÊÕ¼¯Æ÷£ºÒ»ÖÖÒÔ»ñÈ¡×î¶Ì»ØÊÕÍ£¶Ùʱ¼äΪĿ±êµÄÊÕ¼¯Æ÷£¬»ùÓÚ¡°±ê¼Ç-Çå³ý¡±Ëã·¨¡£ÔË×÷¹ý³Ì·ÖËĸö²½Ö裺³õʼ±ê¼Ç ¡¢²¢·¢±ê¼Ç¡¢ÖØÐ±ê¼Ç¡¢²¢·¢Çå³ý¡£

³õʼ±ê¼Ç¡¢ÖØÐ±ê¼ÇÕâÁ½¸ö²½ÖèÈÔÈ»ÐèÒª¡°Stop the World¡±¡£³õʼ±ê¼Ç½ö½öÖ»ÊDZê¼ÇÒ»ÏÂGC RootsÄÜÖ±½Ó¹ØÁªµ½µÄ¶ÔÏó£¬ËٶȺܿ졣²¢·¢±ê¼Ç½×¶Î¾ÍÊǽøÐÐGC Roots Tracing µÄ¹ý³Ì£¬¶øÖØÐ±ê¼Ç½×¶ÎÔòÊÇΪÁËÐÞÕý²¢·¢±ê¼ÇÆÚ¼äÒòΪÓû§³ÌÐò¼ÌÐøÔË×÷¶øµ¼Ö±ê¼Ç²úÉú±ä¶¯µÄÄÇÒ»²¿·Ö¶ÔÏóµÄ±ê¼Ç¼Ç¼£¬ÕâÒ»½×¶ÎµÄÍ£¶Ùʱ¼äÒ»°ã»á±È³õʼ±ê¼Ç½×¶ÎÉÔ³¤Ò»Ð©£¬µ«Ô¶±È²¢·¢±ê¼ÇµÄʱ¼ä¶Î¡£

Õû¸ö¹ý³ÌÖкÄʱ×µÄ²¢·¢±ê¼ÇºÍ²¢·¢Çå³ý¹ý³Ì£¬ÊÕ¼¯Æ÷Ï̶߳¼¿ÉÒÔÓëÓû§Ïß³ÌÒ»Æð¹¤×÷£¬ËùÒÔ£¬CMSÊÕ¼¯Æ÷µÄÄÚ´æ»ØÊÕ¹ý³ÌÊÇÓëÓû§Ïß³ÌÒ»Æð²¢·¢Ö´Ðеġ£

Óŵ㣺²¢·¢ÊÕ¼¯£¬µÍÍ£¶Ù

ȱµã£º¶ÔCPU×ÊÔ´·Ç³£Ãô¸Ð¡¢ÎÞ·¨´¦Àí¸¡¶¯À¬»ø¡¢»ùÓÚ±ê¼ÇÇå³ýËã·¨£¬ÊÕ¼¯½áÊøÊ±ÓдóÁ¿¿Ø¼þË鯬²úÉú

G1ÊÕ¼¯Æ÷£ºG1ÊÕ¼¯Æ÷Êǵ±½ñÊÕ¼¯Æ÷¼¼Êõ·¢Õ¹×îÇ°ÑØ³É¹ûÖ®Ò»£¬Ò»ÖÖÃæÏò·þÎñ¶ËÓ¦ÓõÄÀ¬»øÊÕ¼¯Æ÷¡£

G1µÄÌØµã£º²¢ÐÐÓë²¢·¢¡¢·Ö´úÊÖ»ú¡¢¿Õ¼äÕûºÏ¡¢¿ÉÔ¤²âµÄÍ£¶Ù

ÔË×÷¹ý³ÌÈçÏ£º³õʼ±ê¼Ç¡¢²¢·¢±ê¼Ç¡¢×îÖÕ±ê¼Ç¡¢É¸Ñ¡»ØÊÕ¡£

³õʼ±ê¼Ç½×¶Î½ö½öÖ»ÊDZê¼ÇÒ»ÏÂGC RootsÄÜÖ±½Ó¹ØÁªµ½µÄ¶ÔÏ󣬲¢ÇÒÐÞ¸ÄTAMSµÄÖµ£¬ÈÃÏÂÒ»½×¶ÎÓû§³ÌÐò²¢·¢ÔËÐÐʱ£¬ÄÜÔÚÕýÈ·¿ÉÓõÄRegionÖд´½¨Ð¶ÔÏó£¬Õâ½×¶ÎÐèҪͣ¶ÙỊ̈߳¬µ«ºÄʱºÜ¶Ì¡£

²¢·¢±ê¼Ç½×¶ÎÊÇ´ÓGC Roots¿ªÊ¼¶Ô¶ÑÖжÔÏó½øÐпɴïÐÔ·ÖÎö£¬ÕÒ³ö´æ»îµÄ¶ÔÏó£¬Õâ½×¶ÎºÄʱ½Ï³¤£¬µ«¿ÉÓëÓû§³ÌÐò²¢·¢Ö´ÐС£

¶ø×îÖÕ±ê¼Ç½×¶ÎÔòÊÇÔòÊÇΪÁËÐÞÕýÔÚ²¢·¢±ê¼ÇÆÚ¼äÒòÓû§³ÌÐò¼ÌÐøÔË×÷¶øµ¼Ö±ê¼Ç²úÉú±ä¶¯µÄÄÇÒ»²¿·Ö±ê¼Ç¼Ç¼£¬ÐéÄâ»ú½«Õâ¶Îʱ¼ä¶ÔÏó±ä»¯¼Ç¼ÔÚÏß³ÌRemembered Set LogsÀïÃæ¡£×îÖÕ±ê¼Ç½×¶ÎÐèÒª°ÑRemembered Set LogsµÄÊý¾ÝºÏ²¢µ½Remembered SetÖУ¬Õâ½×¶ÎÐèҪͣ¶ÙỊ̈߳¬µ«Êǿɲ¢ÐÐÖ´ÐС£

×îºóÔÚɸѡ»ØÊÕ½×¶ÎÊ×ÏȶԸ÷¸öRegionµÄ»ØÊÕ¼ÛÖµºÍ³É±¾½øÐÐÅÅÐò¡£¸ù¾ÝÓû§ËùÆÚÍûµÄGCÍ£¶Ùʱ¼äÀ´Öƶ¨»ØÊռƻ®¡£

ÄÚ´æ·ÖÅäÓë»ØÊÕ²ßÂÔ

¶ÔÏóÓÅÏÈÔÚEden·ÖÅ䣺´ó¶àÊýÇé¿öÏ£¬¶ÔÏóÔÚÐÂÉú´úEdenÇøÖзÖÅä¡£µ±EdenÇøÃ»ÓÐ×ã¹»¿Õ¼ä½øÐзÖÅäʱ£¬ÐéÄâ»ú½«·¢ÆðÒ»´ÎMinor GC¡£

´ó¶ÔÏóÖ±½Ó½øÈëÀÏÄê´ú£º´ó¶ÔÏóÊÇÖ¸ÐèÒª´óÁ¿Á¬ÐøÄÚ´æ¿Ø¼þµÄJava¶ÔÏó£¬×îµäÐ͵Ĵó¶ÔÏó¾ÍÊÇÄÇÖֺܳ¤µÄ×Ö·û´®ÒÔ¼°Êý×é¡£

³¤ÆÚ´æ»îµÄ¶ÔÏ󽫽øÈëÀÏÄê´ú£ºÐéÄâ»ú²ÉÓÃÁË·Ö´úÊÕ¼¯µÄ˼ÏëÀ´¹ÜÀíÄڴ棬ÄÇôÄÚ´æ»ØÊÕʱ¾Í±ØÐëÄÜʶ±ðÄÄЩ¶ÔÏóÓ¦·ÅÔÚÐÂÉú´ú£¬ÄÄЩ¶ÔÏóÓ¦·ÅÔÚÀÏÄê´ú¡£ÎªÁË×öµ½Õâµã£¬ÐéÄâ»ú¸øÃ¿¸ö¶ÔÏó¶¨ÒåÁËÒ»¸ö¶ÔÏóÄêÁ伯ÊýÆ÷¡£Èç¹û¶ÔÏóÔÚEden³öÉú²¢¾­¹ýµÚÒ»´ÎMinor GCºóÈÔÈ»´æ»î£¬²¢ÇÒÄܱ»SurvivorÈÝÄɵϰ£¬½«±»Òƶ¯µ½Survivor¿Õ¼äÖУ¬²¢ÇÒ¶ÔÏóÄêÁäÉèΪ1£¬¶ÔÏóÔÚSurvivorÇøÖÐÿ¡°°¾¹ý¡±Ò»´ÎMinor GC£¬ÄêÁä¾ÍÔö¼Ó1Ë꣬µ±ËüµÄÄêÁäÔö¼Óµ½Ò»¶¨³Ì¶È£¨Ä¬ÈÏΪ15Ë꣩£¬¾Í½«»á±»½úÉýµ½ÀÏÄê´ú¡£

¶¯Ì¬¶ÔÏóÄêÁäÅж¨£ºÐéÄâ»ú²¢²»ÊÇÓÀÔ¶ÒªÇó¶ÔÏóµÄÄêÁ䱨Ðë´ïµ½ÁËMaxTenuringThreshold²ÅÄܽúÉýÀÏÄê´ú£¬Èç¹ûÔÚSurvivor¿Õ¼äÖÐÏàͬÄêÁäËùÓжÔÏó´óСµÄ×ܺʹóÓÚSurvivor¿Õ¼äµÄÒ»°ë£¬ÄêÁä´óÓÚ»òµÈÓÚ¸ÃÄêÁäµÄ¶ÔÏó¾Í¿ÉÒÔÖ±½Ó½øÈëÀÏÄê´ú£¬ÎÞÐëµÈµ½MaxTenuringThresholdÖÐÒªÇóµÄÄêÁä¡£

¿Õ¼ä·ÖÅäµ£±££ºÔÚ·¢ÉúMinor GC֮ǰ£¬ÐéÄâ»ú»áÏȼì²éÀÏÄê´ú×î´ó¿ÉÓõÄÁ¬Ðø¿Õ¼äÊÇ·ñ´óÓÚÐÂÉú´úËùÓжÔÏó×ܿռ䣬Èç¹ûÕâ¸öÌõ¼þ³ÉÁ¢£¬ÄÇôMinor GC¿ÉÒÔÈ·±£Êǰ²È«µÄ¡£Èç¹û²»³ÉÁ¢£¬ÔòÐéÄâ»ú»á²é¿´HandlePromotionFailureÉèÖÃÖµÊÇ·ñÔÊÐíµ£±£Ê§°Ü¡£

×ܽá

ÄÚ´æ»ØÊÕÓëÀ¬»øÊÕ¼¯Æ÷Ôںܶàʱºò¶¼ÊÇÓ°ÏìϵͳÐÔÄÜ¡¢²¢·¢ÄÜÁ¦µÄÖ÷ÒªÒòËØÖ®Ò»£¬ÐéÄâ»úÖ®ËùÒÔÌṩ¶àÖÖ²»Í¬µÄÊÕ¼¯Æ÷ÒÔ¼°Ìṩ´óÁ¿µÄµ÷½Ú²ÎÊý£¬ÊÇÒòΪֻÓиù¾Ýʵ¼ÊÓ¦ÓÃÐèÇó¡¢ÊµÏÖ·½Ê½Ñ¡Ôñ×îÓŵÄÊÕ¼¯·½Ê½²ÅÄÜ»ñÈ¡×î¸ßµÄÐÔÄÜ¡£Ã»Óй̶¨ÊÕ¼¯Æ÷¡¢²ÎÊý×éºÏ£¬Ò²Ã»ÓÐ×îÓŵĵ÷ÓÅ·½·¨£¬ÐéÄâ»úÒ²¾ÍûÓÐʲô±ØÈ»µÄÄÚ´æ»ØÊÕÐÐΪ¡£

   
1603 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Java ÖеÄÖÐÎıàÂëÎÊÌâ
Java»ù´¡ÖªÊ¶µÄÈýÊ®¸ö¾­µäÎÊ´ð
Íæ×ª Java Web Ó¦Óÿª·¢
ʹÓÃSpring¸üºÃµØ´¦ÀíStruts
ÓÃEclipse¿ª·¢iPhone WebÓ¦ÓÃ
²å¼þϵͳ¿ò¼Ü·ÖÎö

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

Struts+Spring+Hibernate/EJB+ÐÔÄÜÓÅ»¯
»ªÏÄ»ù½ð ActiveMQ Ô­ÀíÓë¹ÜÀí
ijÃñº½¹«Ë¾ Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢
ij·çµç¹«Ë¾ Java Ó¦Óÿª·¢Æ½Ì¨ÓëÇ¨ÒÆ
ÈÕÕÕ¸Û J2EEÓ¦Óÿª·¢¼¼Êõ¿ò¼ÜÓëʵ¼ù
ij¿ç¹ú¹«Ë¾ ¹¤×÷Á÷¹ÜÀíJBPM
¶«·½º½¿Õ¹«Ë¾ ¸ß¼¶J2EE¼°ÆäÇ°ÑØ¼¼Êõ