åºå
ž:
Hackernoon ãã®æçš¿ãéããŠãJava éçºã§äœ¿çšãããåã¿ã€ãã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã®é·æãšçæãåŠã³ãŸãã ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ (GC) ã«é¢ãã質åã¯ãã»ãŒãã¹ãŠã®ã€ã³ã¿ãã¥ãŒã§èãããŸããããã§ç§ã¯ãçããŠã·ã³ãã«ãšããç§ã®ãæ°ã«å
¥ãã®ååã䜿çšããŠããããã«é¢ããå¿
èŠãªæ
å ±ããã¹ãŠåéããããšã«ããŸããããŸããCG ã®ç®çãšè€æ°ã®çš®é¡ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒãå¿
èŠãªçç±ããå§ããŸããããC ã®ãããªèšèªã§ã¯ããªããžã§ã¯ãæ
å ±ãã¡ã¢ãªã«ä¿åãããã®ã¡ã¢ãªã解æŸããããã«å€ãã®å®åã³ãŒããèšè¿°ããå¿
èŠããããŸãããã¡ããããã®ãããªããã°ã©ã ã§ã¯ã¡ã¢ãª ãªãŒã¯ãããçºçããŸããJava ã¯ãã¬ããŒãž ã³ã¬ã¯ã¿ãŒã䜿çšããŠã¡ã¢ãª ãªãŒã¯ã®åé¡ã解決ããŸãããŸããéçºè
ã¯ãã©ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã䜿çšããã®ãæé©ããç¥ã£ãŠããå¿
èŠããããŸããããã°ã©ã ãã©ãã§ã©ã®ããã«å®è¡ããããã«ãã£ãŠå€§ããç°ãªããŸãã匱ãããŒããŠã§ã¢ãŸãã¯å€æ°ã®ãªããžã§ã¯ãã§å®è¡ãããå¯èœæ§ããããŸãããããã¯ãããã°ã©ã ãéåžžã«é«éã§ããå¿
èŠããããŸãããããã®æ¡ä»¶ã«åºã¥ããŠãæãŸããããã©ãŒãã³ã¹ãéæããããã«ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã調æŽããå¿
èŠããããŸããããã§ã¯ãå§ããŸãããã
JVM ãã¡ã¢ãªãã©ã®ããã«æ±ãã
Java ä»®æ³ãã·ã³ (JVM) ã¯ãã¡ã¢ãªã 2 ã€ã®é åã«åå²ããŸããã¢ããªã±ãŒã·ã§ã³ ããŒã¿ãæ ŒçŽããããŒãé åãšãããã°ã©ã ã³ãŒãããã®ä»ã®ããŒã¿ãæ ŒçŽããéããŒãé åã§ããããŒãé åã«æ³šç®ããŠã¿ãŸããããããã§ãããã°ã©ã ã¯æ°ãããªããžã§ã¯ããäœæããŸãããã¹ãŠã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ãå€ãã®ããã°ã©ã ãäžæãªããžã§ã¯ãã䜿çšãããšããäºå®ã«åºã¥ããŠããŸããã€ãŸãããããã®ãªããžã§ã¯ãã¯äœæãããåŸããã®æ©èœãæãããäžèŠã«ãªã£ããšããããšã§ãããã®ãããªãªããžã§ã¯ãã®å€§éšåããããããªããžã§ã¯ãã«ãã£ãŠã¯ãã¯ããã«é·ãåç¶ããå Žåã«ãã£ãŠã¯ããã°ã©ã ã®å
šæéã«ããã£ãŠåç¶ããå ŽåããããŸããããã§ããªããžã§ã¯ããè¥ãäžä»£ãšå€ãäžä»£ã«åãããšããèããçãŸããŸãããããŠç§ãã¡ã¯è¥ãäžä»£ã®æ§åãé »ç¹ã«ãã§ãã¯ããå¿
èŠããããŸããå®éãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ããã»ã¹ã¯ãè¥ãäžä»£ã®ã¿ã«åœ±é¿ãäžããå°èŠæš¡ãªæž
æãšãäž¡æ¹ã®äžä»£ã«åœ±é¿ãäžããå¯èœæ§ã®ããå®å
šãªæž
æã«åããããŸããã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ããã°ã©ã ã§ããããšã«æ³šæããŠãã ããããŸããåäœããã«ã¯æéãšã³ã³ãã¥ãŒã¿ãŒã®ãªãœãŒã¹ãå¿
èŠã§ããããã¯ã¢ããªã±ãŒã·ã§ã³ã«ã圱é¿ããŸããããã¯ã©ã®ããã«åœ±é¿ããŸãã? ããšãã°ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãå®è¡ããããã«ãJVM ã¯ã¢ããªã±ãŒã·ã§ã³ãäžæåæ¢ããŸããããã¯ãStop-The-World (STW) äžæåæ¢ãšåŒã°ããŸãããã®éããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ ã¹ã¬ããã¯äžæåæ¢ãããŸããããããå
éšã®ã¢ããªã±ãŒã·ã§ã³ã¯ããããŸã£ããèªèããŸãããã¢ããªã±ãŒã·ã§ã³ã®å Žåãæéã¯åçã«æµããŸãããªãããã»ã©æªãã®ã§ãããã? æ³åããŠã¿ãŠãã ãããããªãã¯ãããçš®ã®äº€æã¢ããªã±ãŒã·ã§ã³ãé£è¡æ©ã®èªåæ瞊çšã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŠãããšããŸããã¢ããªã±ãŒã·ã§ã³ã 1 ç§éã¹ãªãŒãç¶æ
ã«ãªããåé¡ã®æ§è³ªãåçã«å€åããå¯èœæ§ããããŸããã€ãŸããäžæåæ¢ã¯ãã¹ãŠã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«ãšã£ãŠéèŠãªãã©ã¡ãŒã¿ãŒã§ããã¬ããŒãž ã³ã¬ã¯ã¿ãŒã®æ¬¡ã®åºæ¬çãªããããã£ã¯ãããã°ã©ã ã®åèšå®è¡æéã«å¯Ÿããã¬ããŒãžã®åéã«è²»ããããåèšæéã§ããããã¯äœãæå³ãããªãããã»ã©éèŠãªã®ã§ãããã? 1 ã€ã®å€§ããªãStop-The-Worldããã§ãŒãºã®ä»£ããã«ãå€æ°ã®å°ããªäžæåæ¢ãå«ãã¢ã«ãŽãªãºã ãéžæã§ããŸããå°ããªäŒæ©ã¯æãŸããã§ãããç¡æã®ãã®ã¯ãããŸããããã®å Žåãããã°ã©ã ã®åèšå®è¡æéãå¢ããããšã§æ¯æããŸãããããŠããã®ããšãèæ
®ã«å
¥ããªããã°ãªããŸããã次ã®ãã©ã¡ãŒã¿ã¯ããŒããŠã§ã¢ ãªãœãŒã¹ã®éã§ããåã³ã¬ã¯ã¿ãŒã«ã¯ããªããžã§ã¯ãæ
å ±ãä¿åããããã®ã¡ã¢ãªãšãã¯ãªãŒã³ã¢ãããå®è¡ããããã®ããã»ããµãå¿
èŠã§ããæåŸã®ãã©ã¡ãŒã¿ã¯é床ã§ããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã®å¹çãšã¯ãããã°ã©ã ã«ãã£ãŠäœ¿çšãããªããªã£ãã¡ã¢ãªãã¬ããŒãž ã³ã¬ã¯ã¿ãŒ (GC) ãã©ãã ãè¿
éãã€å¹ççã«åå©çšããããæããŸããããããã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯ã¢ã«ãŽãªãºã ã«åœ±é¿ãäžãããªãœãŒã¹ã®æ¶è²»ãæå°éã«æããªããã§ããã ãæ©ãã¡ã¢ãªã解æŸã§ããŸããå©çšã§ããã¬ããŒãž ã³ã¬ã¯ã¿ãŒãèŠãŠã¿ãŸããããé¢æ¥ã§ã¯æåã® 5 ã€ãç¥ã£ãŠããå¿
èŠããããŸããä»ã® 2 ã€ã¯ã¯ããã«é£ããã§ãã
ã·ãªã¢ã« GC
ã·ãªã¢ã« GC 㯠Java ä»®æ³ãã·ã³ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã§ãããJava ã®åæãã䜿çšãããŠããŸãããããã¯ãããŒããå°ãããããã»ã©åŒ·åã§ã¯ãªããã·ã³ã§å®è¡ãããããã°ã©ã ã«åœ¹ç«ã¡ãŸãããã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ãããŒãã Eden ãš Survivor ãå«ãé åã«åå²ããŸããEden ãªãŒãžã§ã³ã¯ãã»ãšãã©ã®ãªããžã§ã¯ãã®ã¡ã¢ãªãæåã«å²ãåœãŠãããããŒã«ã§ããSurvivor ã¯ããšãã³ ãªãŒãžã§ã³ã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã§çãæ®ã£ããªããžã§ã¯ããå«ãããŒã«ã§ããããŒãããã£ã±ãã«ãªããšããªããžã§ã¯ã㯠Eden é åãš Survivor é åã®éã§ç§»åãããŸããJVM ã¯ãSurvivor é åãžã®ãªããžã§ã¯ãã®ç§»åãåžžã«ç£èŠãããã®ãããªç§»åã®æ°ã«é©åãªãããå€ãéžæããåŸããªããžã§ã¯ã㯠Tenured é åã«ç§»åãããŸããTenured é åã«ååãªã¹ããŒã¹ããªãå Žåã¯ããã« ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãåŒãç¶ããäž¡æ¹ã®äžä»£ã®ãªããžã§ã¯ããåŠçããŸãã
ãã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã®äž»ãªå©ç¹ã¯ããªãœãŒã¹èŠä»¶ãäœããããåéãå®è¡ããã«ã¯äœé»åããã»ããµã§ååã§ããããšã§ããã·ãªã¢ã« GC ã®äž»ãªæ¬ ç¹ã¯ãç¹ã«å€§éã®ããŒã¿ã®å Žåãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³äžã«é·æéåæ¢ããããšã§ãã
ãã©ã¬ã«CG
䞊åã¬ããŒãž ã³ã¬ã¯ã¿ãŒ (Parallel CG) ã¯ãã·ãŒã±ã³ã·ã£ã« ã³ã³ã¹ãã©ã¯ã¿ãŒã«äŒŒãŠããŸããããã«ã¯ãäžéšã®ã¿ã¹ã¯ã®äžŠååŠçãšãããã©ãŒãã³ã¹èšå®ãèªåçã«èª¿æŽããæ©èœãå«ãŸããŸããParallel GC ã¯ãSerial GC ã®ã¢ã€ãã¢ã«åºã¥ãã Java ä»®æ³ãã·ã³ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã§ããã䞊ååŠçãšã€ã³ããªãžã§ã³ã¹ãè¿œå ãããŠããŸããã³ã³ãã¥ãŒã¿ãŒã«è€æ°ã®ããã»ããµ ã³ã¢ãããå Žåãå€ãããŒãžã§ã³ã® JVM ã¯èªåçã«äžŠå GC ãéžæããŸããããã§ã®ããŒãã¯ãã·ãªã¢ã« GC ãšåãé å (EdenãSurvivor 0ãSurvivor 1ãããã³ Old Gen (Tenured)) ã«åå²ãããŸãããã ããè€æ°ã®ã¹ã¬ããã䞊è¡ããŠã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã«åå ãããããã³ã¬ã¯ã¿ãŒã¯å¿
èŠãªããã©ãŒãã³ã¹ ãã©ã¡ãŒã¿ãŒã«åãããŠèª¿æŽã§ããŸããåã³ã¬ã¯ã¿ãŒ ã¹ã¬ããã«ã¯ãã¯ãªã¢ããå¿
èŠãããã¡ã¢ãªé åããããŸãã䞊å GC ã«ã¯ãå¿
èŠãªã¬ããŒãž ã³ã¬ã¯ã·ã§ã³å¹çãéæããããšãç®çãšããèšå®ããããŸããã³ã¬ã¯ã¿ãŒã¯ã以åã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã®çµ±èšã䜿çšããŠãä»åŸã®ã³ã¬ã¯ã·ã§ã³ã®ããã©ãŒãã³ã¹èšå®ã調æŽããŸãã䞊å GC ã§ã¯ãããã©ãŒãã³ã¹ ãã©ã¡ãŒã¿ãŒãèªå調æŽããããã«ãã®äžæåæ¢æéãççž®ãããŸãããã¡ã¢ãªã®æçåãšããå°ããªæ¬ ç¹ã 1 ã€ãããŸããããã¯ã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸãããããè€éãªããã°ã©ã ã®å Žåã¯ãããé«åºŠãªã¬ããŒãž ã³ã¬ã¯ã¿ãŒå®è£
ãéžæããããšããå§ãããŸãã
é·æ: å€ãã®å Žåãã·ãªã¢ã« GC ãããé«éã§ããã¹ããŒããè¯ããçæ: ããå€ãã®ãªãœãŒã¹ãæ¶è²»ããäžæåæ¢ãéåžžã«é·ããªãå¯èœæ§ããããŸãããStop-The-World ã®æ倧äžæåæ¢æéã調æŽã§ããŸãã
åæããŒã¯ã¹ã€ãŒã
ã³ã³ã«ã¬ã³ã ããŒã¯ ã¹ã€ãŒã (CMS) ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ãããã€ãã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ã¿ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ ã¹ã¬ãããšåæã«å®è¡ããããšã§ãæ倧äžæåæ¢æéãççž®ããããšãç®çãšããŠããŸãããã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ãã¡ã¢ãªå
ã®å€§éã®ããŒã¿ã管çããã®ã«é©ããŠããŸããåæããŒã¯ ã¹ã€ãŒã (CMS) ã¯ãJava ä»®æ³ãã·ã³ (JVM) ã«ããã䞊å GC ã®ä»£æ¿æ段ã§ããããã¯ãè€æ°ã®ããã»ããµ ã³ã¢ãžã®ã¢ã¯ã»ã¹ãå¿
èŠã§ãStop-The-World ã®äžæåæ¢ã®åœ±é¿ãåããããã¢ããªã±ãŒã·ã§ã³ã察象ãšããŠããŸããCMS ã¯ã¡ã€ã³ ããã°ã©ã ãšäžŠè¡ããŠã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ã¹ããããå®è¡ãããããåæ¢ããããšãªãå®è¡ã§ããŸããã·ãªã¢ã« ã³ã¬ã¯ã¿ãŒããã³ãã©ã¬ã« ã³ã¬ã¯ã¿ãŒãšåãã¡ã¢ãªæ§æã䜿çšããŸãããå€ãäžä»£ã®ããŒãžãå®è¡ããåã« Tenured é åããã£ã±ãã«ãªãã®ãåŸ
ã¡ãŸããã代ããã«ãããã¯ã°ã©ãŠã³ãã§å®è¡ãããTenured é åãã³ã³ãã¯ãã«ä¿ãšããšããŸããåæããŒã¯ ã¹ã€ãŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ ã¹ã¬ãããäžæçã«åæ¢ããã«ãŒãããã¢ã¯ã»ã¹å¯èœãªãã¹ãŠã®ãªããžã§ã¯ããããŒã¯ããåæããŒãã³ã° ãã§ãŒãºããå§ãŸããŸãããã®åŸãã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ ã¹ã¬ãããåéãããCMS ã¯ãããŒã¯ãããã«ãŒã ãªããžã§ã¯ãããã®ãªã³ã¯ã«ãã£ãŠã¢ã¯ã»ã¹ã§ãããã¹ãŠã®ã¢ã¯ãã£ã ãªããžã§ã¯ãã®æ€çŽ¢ãéå§ããŸãããã¹ãŠã®çããŠãããªããžã§ã¯ããããŒã¯ããåŸãã³ã¬ã¯ã¿ãŒã¯ããã€ãã®äžŠåã¹ã¬ããã§æ»ãã ãªããžã§ã¯ãã®ã¡ã¢ãªãã¯ãªã¢ããŸããCMS ã®å©ç¹ã® 1 ã€ã¯ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠãªããŠã³ã¿ã€ã ã®æå°åã«éç¹ã眮ãããŠããããšã§ãããã ããCPU ãªãœãŒã¹ãšå
šäœçãªåž¯åå¹
ã®ç¹ã§ç ç²ãå¿
èŠã«ãªããŸããããã«ãCMS ã¯å€ãäžä»£ã®ãªããžã§ã¯ããå§çž®ããªããããæçåãçºçããŸãããã©ã¬ã« ã¢ãŒãã®é害ã®å¯èœæ§ã«ããé·æéã®äžæåæ¢ã¯ãäžå¿«ãªé©ããšãªãå¯èœæ§ããããŸã (ãã ããé »ç¹ã«çºçããããã§ã¯ãããŸãã)ãååãªã¡ã¢ãªãããå ŽåãCMS ã¯ãã®ãããªäžæåæ¢ãåé¿ã§ããŸãã
é·æ: éããã¹ãããã»ã¶ã»ã¯ãŒã«ãã®çãäžæåæ¢ããããŸããçæ: ããå€ãã®ã¡ã¢ãªãæ¶è²»ããŸããã¡ã¢ãªãäžååãªå Žåãäžæåæ¢ãé·ããªãå¯èœæ§ããããŸããã¢ããªã±ãŒã·ã§ã³ã倧éã®ãªããžã§ã¯ããäœæããå Žåã¯ããŸãè¯ããããŸããã
ã¬ããŒãžãã¡ãŒã¹ã
Garbage-First (G1) ã¯ãç¹ã«ãã«ãããã»ããµ ãµãŒããŒäžã§å®è¡ããã倧èŠæš¡ãªããŒã¿ ã»ããã管çãããµãŒã㌠ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãCMS ã®ä»£æ¿æ段ãšèããããŠããŸããG1 ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ã巚倧ãªé å (巚倧ãªãªããžã§ã¯ããå容ããããã«éåžžã®é åãçµåããããšã«ãã£ãŠäœæããã) ãé€ããã¡ã¢ãªãè€æ°ã®åããµã€ãºã®é åã«å€æããŸãããªãŒãžã§ã³ã¯é£ç¶ããŠç·šæãããå¿
èŠã¯ãªããäžä»£ã®æå±ãå€æŽã§ããŸããè¥ãäžä»£ã«å¯ŸããŠå°èŠæš¡ãªããŒãžãå®æçã«å®è¡ããããªããžã§ã¯ãã Survivor ãªãŒãžã§ã³ã«ç§»åããããããªããžã§ã¯ããå€ãäžä»£ã«ã¢ããã°ã¬ãŒããã㊠Tenured ã«è»¢éãããŸããæŽæµã¯ãå¿
èŠãªæéãè¶
ããªãããã«ããå¿
èŠãããé åã§ã®ã¿å®è¡ãããŸããååå¡èªãããŽãã®éãå€ãå°åãäºæž¬ããŠæž
æ察象å°åãéžæããŸãããã« ã¹ã€ãŒãã§ã¯ãããŒãã³ã° ã«ãŒãã䜿çšããŠãã¡ã€ã³ ã¢ããªã±ãŒã·ã§ã³ãšäžŠè¡ããŠå®è¡ãããã©ã€ã ãªããžã§ã¯ãã®ãªã¹ããäœæããŸããããŒãã³ã° ãµã€ã¯ã«ã®åŸãG1 ã¯æ··åããŒãžã®å®è¡ã«åãæ¿ãããŸããããã«ãããããŒãžãããè¥ãäžä»£ã®é åã®ã»ããã«å€ãäžä»£ã®é åãè¿œå ãããŸããG1 ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ãäžæåæ¢ãµã€ãºã®äºæž¬ã«ãã㊠CMS ã³ã¬ã¯ã¿ãŒãããæ£ç¢ºã§ãããšèããããŠãããç¹ã«ããŒã ãµã€ãºã倧ããå Žåã«ãã¢ããªã±ãŒã·ã§ã³ã®é·ãããŠã³ã¿ã€ã ãé²ãããã«ãæéã®çµéãšãšãã«ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãé©åã«åæ£ããŸãããŸããCMS ã³ã¬ã¯ã¿ãŒã®ããã«ã¡ã¢ãªãæçåããããšããããŸããããã ããG1 ã³ã¬ã¯ã¿ãŒã¯ã¡ã€ã³ ããã°ã©ã ãšäžŠè¡ããŠå®è¡ããããã«ããå€ãã® CPU ãªãœãŒã¹ãå¿
èŠãšãããããã¢ããªã±ãŒã·ã§ã³ã®ã¹ã«ãŒããããäœäžããŸãã
é·æ: CMS ãããå¹æçã§ããäŒæ¢æéãçããªããŸããçæ: CPU ãªãœãŒã¹ãããå€ãæ¶è²»ããŸãããŸããéåžžã«å€§ããªãªããžã§ã¯ã (500 KB 以äž) ãå€æ°ããå Žåããã®ãããªãªããžã§ã¯ã㯠1 ã€ã®é å (1 ïœ 32 MB) ã«é
眮ããããããããå€ãã®ã¡ã¢ãªãæ¶è²»ããŸãã
ã€ãã·ãã³ GC
Epsilon GC ã¯ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãå¿
èŠãªãç¶æ³åãã«èšèšãããŠããŸããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã¯å®è¡ãããŸããããTLAB (ã¹ã¬ãã ããŒã«ã«å²ãåœãŠãããã¡) ã䜿çšããŠæ°ãããªããžã§ã¯ããã€ãŸãããŒãããåã
ã®ã¹ã¬ããã«ãã£ãŠèŠæ±ãããå°ããªã¡ã¢ãª ãããã¡ãå²ãåœãŠãŸãããããã¡ã«åãŸããªã巚倧ãªãªããžã§ã¯ãã¯ãããèªèº«å°çšã®ã¡ã¢ãª ãããã¯ãèŠæ±ããŸããEpsilon GC ã®ãªãœãŒã¹ããªããªããšãOutOfMemoryError ãçæãããããã»ã¹ãçµäºããŸããEpsilon GC ã®å©ç¹ã«ã¯ãèµ·åæã«å¿
èŠãªãã¹ãŠã®ãªããžã§ã¯ããäœæããã¢ããªã±ãŒã·ã§ã³ããå²ãåœãŠãããã¡ã¢ãªããã¹ãŠäœ¿çšããªãçæéã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããã¢ããªã±ãŒã·ã§ã³ã®ãªãœãŒã¹èŠä»¶ãäœããªããã¡ã¢ãªå²ãåœãŠãé«éåãããããšãå«ãŸããŸããEpsilon GC ã¯ãä»ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒãã¢ããªã±ãŒã·ã§ã³ã«è¿œå ãããªãœãŒã¹èŠä»¶ã®åæã«ã圹ç«ã¡ãŸãã
é·æ: éåžžã«éããçæ: ãªããžã§ã¯ããã¯ãªã¢ããŸãã :) 次㮠2 ã€ã®ã³ã¬ã¯ã¿ãŒã¯ããã®çš®ã®ã³ã¬ã¯ã¿ãŒã®äžã§æãé«åºŠãªãã®ã§ãããæãè€éã§ããããŸãããããã£ãŠããããã«ã€ããŠç°¡åã«æ€èšããŸãã
ZGC
ZGC ã¯ã倧éã®ããŒã¿ãåŠçããå Žåã§ããããªç§æªæºã®é
延ãç¶æã§ããŸããZGC ã¯ãOracle ã Java çšã«éçºããã¬ããŒãž ã³ã¬ã¯ã¿ãŒã§ã倧èŠæš¡ãªããŒã (æ倧 16 TB) ãåŠçãããšãã«é«ã¹ã«ãŒããããšäœé
延ãå®çŸããããã«èšèšãããŠããŸããZGC ã¯ä»®æ³ã¡ã¢ãªã®åçã«åºã¥ããŠãããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³äžã«ããŸããŸãªè²ã®ããŒãã³ã°ã䜿çšããŠãªããžã§ã¯ãã®ç¶æ
ã远跡ããŸãã
é·æ: äžæåæ¢ã¯ã倧èŠæš¡ãªããŒãã§ãã£ãŠã 1 ããªç§æªæºã§ãããããçãã¯ãšãªåŠçæéãå¿
èŠãšããã¢ããªã±ãŒã·ã§ã³ã«ã¯éåžžã«åœ¹ç«ã¡ãŸããéåžžã«å€§ããªããŒãã§ãè¯å¥œãªã¹ã«ãŒãããã§åäœããŸããZGC ã¯ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³äžã«ããŒã ã¡ã¢ãªãå§çž®ããå¯èœæ§ããããŸããçæ: CPU 䜿çšçãé«ããããã©ãŒãã³ã¹èŠä»¶ãéèŠã§ãããããã¢ããªã±ãŒã·ã§ã³ã®èµ·åæéãé
ããªãå¯èœæ§ããããŸãã
ã·ã§ãã³ããŒGC
Shenandoah GC ããããŒã ãµã€ãºã«é¢ä¿ãªãäžæåæ¢ãçãã¬ããŒãž ã³ã¬ã¯ã¿ãŒã§ãããã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ Red Hat ã«ãã£ãŠéçºãããŸãããã¢ããªã±ãŒã·ã§ã³ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã«è²»ããæéãæå°éã«æããããã«èšèšãããŠããŸããZGC ãšåæ§ã«ãããã¯äžŠåã³ã¬ã¯ã¿ãŒã§ããã€ãŸããã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«å®è¡ãããäžæåæ¢ãæå°éã«æããããŸããShenandoah GC ã¯ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³äžã«ã転éãã€ã³ã¿ãŒãã䜿çšããŠãªããžã§ã¯ãã移åããŸããããã©ãŒãã³ã¹ãåäžãããããã®ãããŒãããªã¢é€å»ããšåŒã°ããæè¡ããããŸãã
é·æ: Shenandoah GC ã¯ã倧èŠæš¡ãªããŒãã§ãã£ãŠããçãäžæåæ¢æéãå®çŸã§ããŸã (å€ãã®å Žå 10 ããªç§æªæº)ãè¯å¥œãªã¹ã«ãŒããããçæ: ããã»ããµã®è² è·ãé«ããé«è² è·äžã§ã®äœæ¥ãå°é£ã§ãã
çµè«
ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã¯ãããã°ã©ãã³ã°ã®äžã§æãé£ããã¿ã¹ã¯ã® 1 ã€ã§ãããã®æ¹åã«åããŠæ°ããªéçºãåžžã«è¡ãããŠããŸããããã°ã©ããŒã GC ã埮調æŽããããšã¯ãŸãã§ãããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒã«ãã©ã®ããã«æ©èœãããã«ã€ããŠå°ãªããšãããçšåºŠã®ç¥èã¯å¿
èŠã§ãã
GO TO FULL VERSION