å€§èŠæš¡ãšã³ã¿ãŒãã©ã€ãºç°å¢ã«ãããŠãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã®ãã¥ãŒãã³ã°ã¯ãã¯ãäžåºŠããã®æé©åã¹ãããã§ã¯ãªããç¶ç¶çãªããã©ãŒãã³ã¹ç®¡çãžãšé²åããŠããŸããã¢ããªã·ãã¯ãªJVMã¢ããªã±ãŒã·ã§ã³ãããã€ã¯ããµãŒãã¹ãã³ã³ããåãããã¯ãŒã¯ããŒããŸã§ã倿§ãªã©ã³ã¿ã€ã ãã·ã¹ãã ã«çµ±åãããã«ã€ããã¡ã¢ãªç®¡çã¯å®å®æ§ã®äžå¿çãªæ±ºå®èŠå ãšãªããŸããæ¬çªç°å¢ã§ã®GCç£èŠã埮調æŽããã«ã¯ãæè¡çãªç²ŸåºŠã ãã§ãªããã¡ã¢ãªè² è·ãã¹ã¬ããç«¶åãããŒã¿ã¹ã«ãŒãããããµãŒãã¹éã§ã©ã®ããã«çžäºäœçšãããã«ã€ããŠã®ã¢ãŒããã¯ãã£çãªèªèãå¿ èŠã§ããçŸä»£ã®ãšã³ã¿ãŒãã©ã€ãºã¯ãããã©ã«ãã®ã³ã¬ã¯ã¿ãŒæ§æã ãã«é Œãããšã¯ã§ããŸãããç£èŠããã»ã¹ã«ãå¯èŠ³æž¬æ§ãèªååãäºæž¬åæãçµ±åããå¿ èŠããããŸãã
管çãããŠããªãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ã³ã¹ãã¯ãããã©ãŒãã³ã¹ã®äœäžã ãã«ãšã©ãŸããŸãããéå¹ççãªã¡ã¢ãªååã¯ãäºæž¬äžå¯èœãªã¬ã€ãã³ã·ã®æ¥å¢ãå¿çæéã®äžè²«æ§ã®ãªãããããŠé«åæå®è¡æã®ãªãœãŒã¹æ¯æžãåŒãèµ·ãããŸãããããã®åé¡ã¯å€ãã®å Žåãæ°ã¥ãããã«é²è¡ããããŒã¯è² è·æããæ°èŠã·ã¹ãã ãšã¬ã¬ã·ãŒã·ã¹ãã ã䞊è¡ããŠçšŒåãã䞊åå®è¡ç°å¢ã§ã®ã¿é¡åšåããŸããã¢ããã€ãŒãŒã·ã§ã³ã®ãªãŒããŒã«ãšã£ãŠãäžè²«ããããã©ãŒãã³ã¹ã®å¯èŠæ§ãç¶æããã«ã¯ãã³ã¬ã¯ã¿ãŒã®åäœãéçšã¯ãŒã¯ããŒãããµãŒãã¹ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããããŠé²åããããŒã¿ã©ã€ããµã€ã¯ã«ãšæŽåãããå¿ èŠããããŸãã CI/CDãã€ãã©ã€ã³ã«ãããããã©ãŒãã³ã¹ååž°ãã¹ã ã©ã³ã¿ã€ã ã®å¯èŠ³æž¬æ§ããäºåŸå¯Ÿå¿çãªæ¶ç«æŽ»åã§ã¯ãªããäºé²çãªèŠåŸãžãšã©ã®ããã«é²åã§ãããã瀺ããŸãã
ããŒã¿ãæŽå¯åã«å€ãã
Smart TS XL ã䜿çšããŠéçåæãã©ã€ããã¬ã¡ããªã«æ¥ç¶ããGC ã®åäœãå®å šã«å¯èŠåããŸãã
ä»ããæ¢çŽ¢ããå®è¡æã¡ããªã¯ã¹ã«å ããæ¬çªç°å¢ã§GCã埮調æŽããã«ã¯ãã³ã¬ã¯ã¿ãŒã®æŽ»åãçã¿åºãæ ¹æ¬çãªå²ãåœãŠãã¿ãŒã³ãçè§£ããããšãäžå¯æ¬ ã§ããéçåæãšåœ±é¿åæã¯ãæéã®çµéãšãšãã«èç©ãããéå¹ççãªãªããžã§ã¯ãäœæãããŒã¿ä¿æãã·ãªã¢ã«åã®ãªãŒããŒããããç¹å®ããäžã§éèŠãªåœ¹å²ãæãããŸãããã¬ã¡ããªãåäœãã¬ãŒã¹ãšé£æºããããšã§ããšã³ãžãã¢ã¯ãããã®æŽå¯ãããã¡ã¢ãªãã£ãŒã³ã®åå ãšãªã£ãŠããã³ãŒããã¹ãæ£ç¢ºã«ç¹å®ã§ããŸããéçåæãšå®è¡æã¢ãã¿ãªã³ã°ã®èåã¯ã ããŒã¿ãšå¶åŸ¡ãããŒã®åæãããã¹ããŒããªéçã³ãŒãåæãå®çŸããæ¹æ³ããã©ãŒãã³ã¹èšºæã®ç²ŸåºŠãåäžããŸãã
广çãªGCãã¥ãŒãã³ã°ã®æçµæ®µéã¯ãã¯ãŒã¯ããŒãã®å€åã«èªåçã«é©å¿ããã€ã³ããªãžã§ã³ã¹ã§ããæ©æ¢°åŠç¿ã¢ãã«ã¯ãGCãã¬ã¡ããªã®ç°åžžãéçšã«æ¯éãããããã£ãšåã«æ€åºããå°æ¥ã®é£œåãªã¹ã¯ã«é¢ããäºæž¬çãªæŽå¯ãæäŸããŸãã 圱é¿åæè¿ä»£åããŒããããã«ããããã¬ã¡ããªã®åœ¹å² å¯èŠ³æž¬æ§ãç¶ç¶çãªã¬ããã³ã¹ãžãšã©ã®ããã«å€åãããã瀺ããŸããSmart TS XLãªã©ã®ããŒã«ã掻çšããããšã§ãäŒæ¥ã¯å®è¡æã®å²ãåœãŠåäœã«åœ±é¿ãäžããã³ãŒãã¬ãã«ã®äŸåé¢ä¿ããããã³ã°ããããšã§ããã®ã€ã³ããªãžã§ã³ã¹ãããã«æ¡åŒµã§ããŸããããã¢ã¯ãã£ããªç£èŠã詳现ãªåæããããŠã¢ããªã±ãŒã·ã§ã³éã®ã€ã³ãµã€ããçµã¿åãããããšã§ãæ¬çªç°å¢ã«ãããå€§èŠæš¡ãªã¡ã¢ãªå®å®æ§ã®å®çŸæ¹æ³ãå·æ°ãããŸãã
ãšã³ã¿ãŒãã©ã€ãº JVM ããã³ .NET ã·ã¹ãã ã«ãããã¡ã¢ãªäžè¶³ã®èšºæ
å®çšŒåã·ã¹ãã ã«ãããã¡ã¢ãªäžè¶³ã®èšºæã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãå®å®ãããäºæãã¬åèµ·åãé²ãããã®åºæ¬çãªã¹ãããã§ãããšã³ã¿ãŒãã©ã€ãºã°ã¬ãŒãã®ãããã€ã¡ã³ãã§ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒãããã©ãŒãã³ã¹ã®å®å šçãšããŠã ãã§ãªããæœåšçãªé害èŠå ãšããŠãæ©èœããããšããããããŸããéå°ãªå²ãåœãŠçãæçåãããããŒãã管çãããŠããªãåç §ãã§ãŒã³ã¯ããã€ããŒã³ã¬ã¯ã·ã§ã³ãŸãã¯ãã«ã³ã¬ã¯ã·ã§ã³ã®é »ç¹ãªçºçã«ã€ãªãããå®è¡ã¹ã¬ãããããªãŒãºããéèŠãªããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ãé å»¶ããå¯èœæ§ããããŸããJVMãš.NETã©ã³ã¿ã€ã ã®äž¡æ¹ãå®è¡ããæ··åšç°å¢ã§ã¯ããããã®çç¶ã®çŸãæ¹ã¯ç°ãªããŸãããå²ãåœãŠãšåå©çšã®éã®æ ¹æ¬çãªäžåè¡¡ã«èµ·å ããŠããŸããã¡ã¢ãªäžè¶³ã®æ ¹æ¬åå ãç¹å®ããã«ã¯ãããŒããã³ããGCãã°ã«ãšã©ãŸããªãå€å±€çãªåæãå¿ èŠã§ãã
ææ°ã®å¯èŠ³æž¬æ§ãã¬ãŒã ã¯ãŒã¯ã¯ãå®è¡æã¡ããªã¯ã¹ããããã¡ã€ãªã³ã°ããŒã¿ãå²ãåœãŠãã¬ã¡ããªãçµ±åãããªããžã§ã¯ããã©ã®ããã«äœæãææ ŒããããŠå»æ¢ãããããè©³çŽ°ã«ææ¡ããŸããJVMã¯ãGCåŸã®æ§äžä»£ã®å æçãããSurvivoré åã®äœ¿çšçãããææ Œå€±æåæ°ããšãã£ããã现ããªææšãæäŸãã.NETã®èšºæAPIã¯ããŒãå§çž®ãšãšãã§ã¡ã©ã«ã»ã°ã¡ã³ãã®çµ±èšæ å ±ãæäŸããŸãããããã®ã¡ããªã¯ã¹ãã¢ããªã±ãŒã·ã§ã³ã®ã¹ã«ãŒããããšçžé¢ãããããšã§ãè² è·ã®åå ããªããžã§ã¯ãã®å¯¿åœã®é·ãããããŒã¿ã®éå¹çãªã·ãªã¢ã«åããããã¯ç®¡çãããŠããªãã¡ã¢ãªãæ¶è²»ããå€éšäŸåé¢ä¿ã®ãããã«ãããã®ããæããã«ããŸãããã®ã¢ãããŒãã¯ãã§èª¬æãã粟床ããŒã¹ã®è©äŸ¡ãšæŽåããŠããŸãã ææ°ã®ã¢ããªã±ãŒã·ã§ã³ã«ãããäŸå€åŠçããžãã¯ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã枬å®ããå®è¡æã®åäœãã·ã¹ãã ã¬ãã«ã®çµæã«ãªã³ã¯ããããšã§æŽå¯ãåŸãããŸãã
å²ãåœãŠé »åºŠãšæ©èœã¯ãŒã¯ãããŒã®çžé¢é¢ä¿
GCé¢é£ã®ã¡ã¢ãªè² è·ã蚺æããæã广çãªæ¹æ³ã®äžã€ã¯ãå²ãåœãŠé »åºŠãšç¹å®ã®ã¯ãŒã¯ãããŒãçžé¢ãããããšã§ãããã¹ãŠã®ã¡ã¢ãªã¹ãã€ã¯ãéå¹çæ§ã瀺ãããã§ã¯ãããŸãããäžéšã®å²ãåœãŠã¯çæéã§çµäºãããã©ã³ã¶ã¯ã·ã§ã³éã®æ£åœãªããŒã¯ã«å¯Ÿå¿ããŸããå²ãåœãŠé »åºŠãAPIåŒã³åºãé »åºŠããããåŠçãã¿ãŒã³ãšãããã³ã°ããããšã§ããšã³ãžãã¢ã¯èªç¶ãªã¹ã«ãŒããããã¿ãŒã³ãšã³ãŒãã¬ãã«ã®éå¹çæ§ãåºå¥ããããšãã§ããŸãã
éçè§£æããŒã«ã¯ããªããžã§ã¯ãã®å埩çãªçæã«é¢äžããã¯ã©ã¹ãšã¡ãœãããç¹å®ãã圱é¿åæã¯ãããã®æ§æèŠçŽ ãã¢ããªã±ãŒã·ã§ã³å±€ã«ã©ã®ããã«äŒæããããå€å®ããŸããäž¡æ¹ã®èŠç¹ãçµã¿åãããããšã§ãããã©ãŒãã³ã¹ã®åé¡ãããžãã¹ããžãã¯ã«èµ·å ããã®ããã€ã³ãã©ã¹ãã©ã¯ãã£ã®å¶çŽã«èµ·å ããã®ããæç¢ºã«ç€ºããå®çšçãªæ å ±ãåŸãããŸãããã®ãã€ããªãã蚺æã¢ãã«ã¯ã ã¢ããªã±ãŒã·ã§ã³ã®ã¬ã€ãã³ã·ã«åœ±é¿ãäžããé ããã³ãŒããã¹ãæ€åºããã³ãŒããã¹ãè©³çŽ°ã«æ€æ»ããããšã§ãã·ã¹ãã ã®éå¹çæ§ãæããã«ãªããŸãããã®çµæãã¡ã¢ãªäœ¿çšéã«é¢ããäžè¬çãªä»®å®ããããæž¬å®å¯èœãªçç¶ãåªå ãããæŽç·Žããã蚺æããã»ã¹ãå®çŸããŸãã
ããŒãã®æçåãšææ Œã®ç°åžžãè©äŸ¡ãã
é·æéå®è¡ãããæ¬çªç°å¢ã®ã¯ãŒã¯ããŒãã§ã¯ãããŒãã®æçåã¯ã¡ã¢ãªäžè¶³ã®æãé¡èãã€æ·±å»ãªåœ¢æ ã®äžã€ãšãªããŸããè€æ°ã®GCãµã€ã¯ã«ãçãå»¶ã³ããªããžã§ã¯ãã¯ããŒãã¡ã¢ãªå ã«ãã®ã£ããããäœãåºããã³ã¬ã¯ã¿ãŒã«ã³ã³ãã¯ã·ã§ã³æäœãããé »ç¹ã«å®è¡ãããå¯èœæ§ããããŸãããããã®æäœã¯å¿ èŠäžå¯æ¬ ã§ãããã¬ã€ãã³ã·ãåŒãèµ·ãããCPUæ¶è²»éãå¢å ãããŸãã
æéééã«ããã£ãŠããŒãæ§æãåæããããšã§ãæçåãäžæçãªå²ãåœãŠã«ãããã®ããè§£æŸãããã¹ãã ã£ãæ°žç¶çãªåç §ã«ãããã®ãã倿ããã®ã«åœ¹ç«ã¡ãŸããããŒãã»ã°ã¡ã³ããšå²ãåœãŠãã¹ãã°ã©ã ãèŠèŠåããããŒã«ã¯ããã®èšºæã«è²ŽéãªèšŒæ ãæäŸããŸãããã®æ¹æ³è«ã¯ãã§èª¬æããæ§é åãããå®è¡ææ€æ»ãšé¡äŒŒããŠããŸãã å®è¡æåæã«ãããåäœã®å¯èŠåãè¿ä»£åãå éããæ¹æ³ãè§£æå®è¡æã€ãã³ããšãã®ã¢ãŒããã¯ãã£äžã®æ ¹æºãšã®çžé¢é¢ä¿ã匷調ããŠããŸããæçåã®æ€åºãšä¿®æ£ã«ã¯ç¶ç¶çãªãããã¡ã€ãªã³ã°ãå¿ èŠã§ãããå€ãã®å Žåãé·æé䜿çšããããªããžã§ã¯ããã¿ãŒã³ã®ãªãã¡ã¯ã¿ãªã³ã°ããããŒã¿ãã£ãã·ã¥æŠç¥ã®åèšèšã«ããããã¢ãŒã·ã§ã³è² è·ã®è»œæžãå¿ èŠã«ãªããŸãã
ç°æ©çš®ã©ã³ã¿ã€ã ã«ãããGCå§åã®è§£é
ãšã³ã¿ãŒãã©ã€ãºç°å¢ãJVMã.NETããã€ãã£ãçµ±åãšãã£ããã€ããªããã¹ã¿ãã¯ãéçšããŠããå Žåãã¡ã¢ãªè² è·åæã§ã¯ã©ã³ã¿ã€ã éã®çžäºäœçšãèæ ®ããå¿ èŠããããŸããäŸãã°ãJavaã¢ããªã±ãŒã·ã§ã³ã¯éäžçãªèšç®ããã€ãã£ãã©ã€ãã©ãªã«ãªãããŒãããäžæ¹ã§ã.NETããã»ã¹ã¯CLRããŒãå€ã®ã¢ã³ãããŒãžããããã¡ãæ¶è²»ããããšããããŸãããããã®ã±ãŒã¹ã§ã¯ãããŒãã¡ããªãã¯ããããŒãžãã¡ã¢ãªã®ã¿ãåæ ããã¢ã³ãããŒãžãã¡ã¢ãªã®å²ãåœãŠã¯ãã§ãã¯ãããªããŸãŸãšãªããããGCç£èŠãæ··ä¹±ããããšããããããŸãã
GCçµ±èšãšããã»ã¹å šäœã®ã¡ã¢ãªæ¶è²»éïŒRSSãŸãã¯ãã©ã€ããŒããã€ãïŒãçžé¢ãããããšã§ããã®ãããªäžäžèŽãæ€åºããã®ã«åœ¹ç«ã¡ãŸããã©ã³ã¿ã€ã å šäœã«ããã£ãŠãã¬ã¡ããªãçµ±åããããšã§ã管ç察象ãªãœãŒã¹ãšç®¡ç察象å€ãªãœãŒã¹ã®äž¡æ¹ã®æåãå¯èŠåã§ããŸãããã®æ¹æ³ã¯ã以äžã®å¯èŠ³æž¬æ§çµ±åã¢ãããŒãã«äŒŒãŠããŸãã æ®µéçãªè¿ä»£åãå¯èœã«ãããšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³å€æ§ãªã³ã³ããŒãã³ãéã®åæç£èŠã«ãããã·ã¹ãã å šäœã®ã³ã³ããã¹ããæäŸãããŸãããã®èŠç¹ãåãå ¥ããããšã§ãçµç¹ã¯æ£åœãªã³ã¬ã¯ã¿ãŒã¢ã¯ãã£ããã£ãšå€éšã¡ã¢ãªç«¶åãæ£ç¢ºã«åºå¥ããæ£ç¢ºãªãã¥ãŒãã³ã°ãšäºæž¬çãªãã£ãã·ãã£ãã©ã³ãã³ã°ã®åºç€ãæ§ç¯ã§ããŸãã
GC ã€ãã³ããšã¢ããªã±ãŒã·ã§ã³ã®ã¹ã«ãŒãããããã³ã¬ã€ãã³ã·ã®çžé¢é¢ä¿
å®çšŒåç°å¢ã§ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã€ãã³ããšã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ã®é¢ä¿ã誀解ãããããšããããããŸããGCã¯ã¡ã¢ãªã®åå©çšãæé©åããã¡ã¢ãªãªãŒã¯ã鲿¢ããããã«èšèšãããŠããŸãããGCã®ã¢ã¯ãã£ããã£ãç£èŠããã¢ããªã±ãŒã·ã§ã³ã®ã¹ã«ãŒããããšçžé¢ãããªããšãäºæž¬ã§ããªãã¬ã€ãã³ã·ãçºçããå¯èœæ§ããããŸãããã®çžé¢é¢ä¿ã¯ãæ°ããªç§ã®åæ¢æéãæ°åãã®ãã©ã³ã¶ã¯ã·ã§ã³ã®é å»¶ã«æ³¢åããå¯èœæ§ãããé«ã¹ã«ãŒãããã·ã¹ãã ã§ã¯ç¹ã«éèŠã§ããGCã¢ã¯ãã£ããã£ãããã©ãŒãã³ã¹ææšã«çŽæ¥ãããã³ã°ããªããšãã¬ã€ãã³ã·ã®åé¡ãå éšã®ã¡ã¢ãªç®¡çåäœã§ã¯ãªããå€éšã·ã¹ãã ãã€ã³ãã©ã¹ãã©ã¯ãã£ã«èª€ã£ãŠåž°å±ãããŠããŸããªã¹ã¯ããããŸãã
çŸä»£ã®ãšã³ã¿ãŒãã©ã€ãºç£èŠæŠç¥ã§ã¯ãGCãã¬ã¡ããªããµãŒãã¹ã¬ãã«ã®å¯èŠ³æž¬æ§ã®äžå¯æ¬ ãªèŠçŽ ãšããŠæ±ããŸããã³ã¬ã¯ã¿ãŒã¯åçãªã©ã³ã¿ã€ã ã³ã³ããã¹ãå ã§åäœããå²ãåœãŠé »åºŠããªããžã§ã¯ãã®çåæéãããŒãã®æçåã«åå¿ããŸããã³ã¬ã¯ã·ã§ã³ã®äžæåæ¢ãé »åºŠãã¡ã¢ãªååçããã©ã³ã¶ã¯ã·ã§ã³ã¹ã«ãŒããããšçžé¢ãããããšã§ãããŒã ã¯ããã©ãŒãã³ã¹äœäžã®åå ãéå°ãªãªããžã§ã¯ãã®å€åãäžååãªããŒããµã€ãºããããã¯GCèšå®ã®äžåã®ãããã«èµ·å ããã®ããç¹å®ã§ããŸãããã®åæã¢ãããŒãã¯ã å¶åŸ¡ãããŒã®è€éããå®è¡æããã©ãŒãã³ã¹ã«ã©ã®ããã«åœ±é¿ãããå®è¡æã®äŸåé¢ä¿ãæäœåäœã«çŽæ¥åœ±é¿ãåãŒããŸãã
çµ±äžãããããã©ãŒãã³ã¹çžé¢ã¢ãã«ã®ç¢ºç«
GCãšã¹ã«ãŒãããã®æ£ç¢ºãªçžé¢é¢ä¿ãå®çŸããã«ã¯ãã©ã³ã¿ã€ã ãã°ãã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ç£èŠïŒAPMïŒãã©ãããã©ãŒã ãã·ã¹ãã ã¬ãã«ã®ãªãœãŒã¹äœ¿çšçãªã©ãè€æ°ã®ãã¬ã¡ããªãœãŒã¹ããã¡ããªã¯ã¹ãåéããå¿ èŠããããŸããç®æšã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã€ãã³ãããã©ã³ã¶ã¯ã·ã§ã³ã®ã¬ã€ãã³ã·ãCPUæ¶è²»éãã¹ã¬ããç«¶åã«çµã³ä»ããçµ±äžã¢ãã«ãæ§ç¯ããããšã§ããJVMç°å¢ã§ã¯ãGCã®äžæåæ¢æéãå²ãåœãŠçãææ Œçãå¿çæéã®ååžãšçžé¢ãããããšãã§ããŸãã.NETç°å¢ã§ã¯ãGen2ã³ã¬ã¯ã·ã§ã³ãšã©ãŒãžãªããžã§ã¯ãããŒãã®å§çž®ããªã¯ãšã¹ãã®ã¹ã«ãŒããããšç §åã§ããŸãã
ãã®çžé¢é¢ä¿ã確ç«ããããšã§ãGCã¢ã¯ãã£ããã£ãšããã©ãŒãã³ã¹ã®äœäžã®æéçãªé¢é£æ§ãæããã«ãªããŸããäŸãã°ã100ããªç§ã®ã¹ãããã»ã¶ã»ã¯ãŒã«ã忢ããã©ã³ã¶ã¯ã·ã§ã³éã®æ¥æ¿ãªæžå°ãšäžèŽããå ŽåãGCã«ããã¬ã€ãã³ã·ã®åŒ·åãªèšŒæ ãšãªããŸãããã®åæææ³ã¯ãGCã®ã·ã¹ãã ãã¬ãŒã¹ã®èгç¹ãåæ ããŠããŸãã ãšã³ã¿ãŒãã©ã€ãºã¢ããªã®æ ¹æ¬åå åæã®ããã®ã€ãã³ãçžé¢ããã©ãŒãã³ã¹ã€ã³ã·ãã³ãã¯ãã¯ãã¹ã¡ããªãã¯ã¢ã©ã€ã¡ã³ããéããŠæ€èšŒãããŸãããã®çµ±åã¢ãã«ãç¶ç¶çã«ç¶æããããšã§ãéçšããŒã ã¯ããã¥ãŒãã³ã°äœæ¥ã«ãããŠã³ã¬ã¯ã¿ãŒæ§æãã³ãŒãã¬ãã«ã®æé©åããããã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ã¹ã±ãŒãªã³ã°ã®ã©ãã«éç¹ã眮ãã¹ããã倿ã§ããŸãã
æ£åžžãªGCã®è¡åãšç çãªãã¿ãŒã³ãåºå¥ãã
ãã¹ãŠã®GCã¢ã¯ãã£ããã£ãéå¹çæ§ã瀺ãããã§ã¯ãããŸãããé©åã«èª¿æŽãããã³ã¬ã¯ã¿ãŒã¯ããã€ããŒã³ã¬ã¯ã·ã§ã³ãšã¡ãžã£ãŒã³ã¬ã¯ã·ã§ã³ã®ãã©ã³ã¹ãäžå®ã«ä¿ã¡ãã·ã¹ãã ãæ³å®ãããã¬ã€ãã³ã·ã®å¢çå ã§åäœããããšãä¿èšŒããŸããããããç°åžžãªGCãã¿ãŒã³ã¯ãç°åžžã«é »ç¹ãªãã«ã³ã¬ã¯ã·ã§ã³ãäžèŠåãªäžæåæ¢ééããŸãã¯äœãã¡ã¢ãªååçãšãã£ãèå¥å¯èœãªçç¶ã瀺ããŸãããããã®ç°åžžã¯ãããŒãã®æçåãé床ã®çåœãªå²ãåœãŠã广çãªã¡ã¢ãªååã劚ããã¡ã¢ãªãªãŒã¯ãªã©ãããæ·±å»ãªåé¡ã瀺åããŠããŸãã
ãã¿ãŒã³ã®å€å¥ã¯ãéå»ã®ããŒã¹ã©ã€ã³ã確ç«ããããããªã¢ã«ã¿ã€ã ã®ãã¬ã¡ããªãšæ¯èŒããããšã§å®çŸããŸããåå·®ã蚱容éŸå€ãè¶ ããå Žåãã¢ã©ãŒãã«ãã£ãŠäžè¬çãªã·ã¹ãã ã®åèµ·åã§ã¯ãªããã¿ãŒã²ãããçµã£ã蚺æãããªã¬ãŒã§ããŸãããã®èŠåŸããå€å¥æ¹æ³ã¯ã ã¢ããªã±ãŒã·ã§ã³ã®ã¬ã€ãã³ã·ã«åœ±é¿ãäžããé ããã³ãŒããã¹ãæ€åºããåæã§ã¯ãä»®å®ãããè¡åã®èšŒæ ãåªå ããŸããäºæ³ãããGCã¢ã¯ãã£ããã£ãšç°åžžãç¶ç¶çã«åºå¥ããããšã§ãäŒæ¥ã¯ããã©ãŒãã³ã¹ä»å ¥ãæ£ç¢ºãã€æå°éã®äŸµè¥²æ§ã§å®æœãããããšãä¿èšŒããŸãã
å²ãåœãŠã®æ¥å¢ãšã¢ããªã±ãŒã·ã§ã³ã¯ãŒã¯ãããŒã®çžé¢é¢ä¿
æ¬çªç°å¢ã®ã¯ãŒã¯ããŒãã§ã¯ãå²ãåœãŠã®æ¥å¢ã¯ãã¬ããŒãçæãããŒã¿ã®ã€ã³ããŒããã»ãã·ã§ã³ã®ãã£ãã·ã¥ãšãã£ãç¹å®ã®ããžãã¹ããã»ã¹ãšéãªãããšããããããŸããããããã¢ã¯ãã£ããã£ã®æ¥å¢ã¯ã¡ã¢ãªãã£ãŒã³ãå¢å ãããã³ã¬ã¯ã¿ãŒã¯ããç©æ¥µçã«ã¹ããŒã¹ãåå©çšããããšããŸããã¯ãŒã¯ãããŒã®å®è¡ãšå²ãåœãŠã¢ã¯ãã£ããã£ã®éã«çžé¢é¢ä¿ããªããšãèšèšã©ããã«åäœããŠããGCèšå®ãéå°ã«ãã¥ãŒãã³ã°ããŠããŸããªã¹ã¯ããããŸãã
圱é¿åæããŒã«ã¯ãã³ãŒãå®è¡ãã¹ã察å¿ããå²ãåœãŠåäœã«ãããã³ã°ã§ããŸããã©ã³ã¿ã€ã ãã¬ã¡ããªãšçµã¿åãããããšã§ããããã®ãããã¯ãã©ã®ããžãã¹é¢æ°ãæãäžæçãªãªããžã§ã¯ããçæãããããã®å²ãåœãŠãGCè² è·ã«ã©ã®ããã«åœ±é¿ããããç¹å®ããŸãããã®çžé¢ã¢ãã«ã¯ã ã¢ããªã¹ããã€ã¯ããµãŒãã¹ã«æ£ç¢ºãã€ç¢ºå®ã«ãªãã¡ã¯ã¿ãªã³ã°ããæ©èœæšªæçãªçžäºäœçšãçè§£ããããšã§ãããã¹ããŒããªã·ã¹ãã ã»ã°ã¡ã³ããŒã·ã§ã³ãå¯èœã«ãªããŸããGCåæãããžãã¹ã¯ãŒã¯ãããŒã®ã³ã³ããã¹ããšé£æºãããããšã§ãéçšããŒã ã¯äºæž¬å¯èœãªãã¿ãŒã³ãžã®éå°åå¿ãåé¿ããç°åžžãŸãã¯éå¹ççãªã¡ã¢ãªæ¶è²»æºã«çŠç¹ãåœãŠãããšãã§ããŸãã
GCãã§ãŒãºå šäœã®ã¬ã€ãã³ã·ååžãèŠèŠåãã
广çãªçžé¢é¢ä¿ãæ§ç¯ããã«ã¯ãçã®æ°å€ã®ã¿ãåæããã®ã§ã¯ãªããGCãã§ãŒãºå šäœã«ãããã¬ã€ãã³ã·ååžãå¯èŠåããããšãéèŠã§ããããŒã¯ãã¹ã€ãŒããã³ã³ãã¯ã·ã§ã³ãããã¢ãŒã·ã§ã³ã®åãã§ãŒãºã¯ãããã©ãŒãã³ã¹ã«ããããç°ãªã圱é¿ãäžããŸããããŒã¯ãã§ãŒãºã¯äžæåæ¢ã®é »åºŠã決å®ããã³ã³ãã¯ã·ã§ã³ãã§ãŒãºã¯äžæåæ¢æéã«åœ±é¿ãäžããŸããã¬ã€ãã³ã·ãéå±€åãããã¿ã€ã ã©ã€ã³ãšããŠå¯èŠåããããšã§ãã³ã¬ã¯ã¿ãŒãæãå€ãã®åŠçæéãæ¶è²»ããŠããç®æãšããããã¹ã«ãŒãããã®äœäžãšé¢é£ããŠãããã©ãããæããã«ãªããŸãã
ææ°ã®ç£èŠãã©ãããã©ãŒã ã¯ãGCã¢ã¯ãã£ããã£ããªã¯ãšã¹ãã¬ãŒããã¹ã¬ãã䜿çšçãšäžŠã¹ãŠè¡šç€ºããããŒããããããã¹ãã°ã©ã ãªãŒããŒã¬ã€ãæäŸããŠããŸãããã®ã°ã©ãã£ã«ã«ãªæŽå¯ã¯ãããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãžã®ããã¢ã¯ãã£ããªã¢ãããŒãããµããŒãããŸããå¯èŠåã®èãæ¹ã¯ã ã³ãŒãã®èŠèŠå ã³ãŒããå³è¡šã«å€æããè§£éå¯èœæ§ã«ãã£ãŠæææ±ºå®ãå éãããŸããGCãã§ãŒãºå šäœã®ã¬ã€ãã³ã·ãå¯èŠåããããšã§ãããã©ãŒãã³ã¹ã®ããã«ããã¯ã®åå ãã³ã¬ã¯ã¿ãŒã®åäœãå²ãåœãŠã®éå¹çæ§ãããŒããã©ã¡ãŒã¿ã®äžæŽåã®ãããã«ããããç¹å®ããæçµçã«ã¯è©Šè¡é¯èª€ã§ã¯ãªãããŒã¿ã®æç¢ºãã«åºã¥ãããã¥ãŒãã³ã°ã®æææ±ºå®ãå¯èœã«ãªããŸãã
å€åè² è·æ¡ä»¶äžã§ã®é©å¿åGCãã¥ãŒãã³ã°
éçGCæ§æã¯ãåçãªã¯ãŒã¯ããŒãäžã§ã¯æé©ãªããã©ãŒãã³ã¹ãçºæ®ããããšã¯ã»ãšãã©ãããŸãããæ¬çªã·ã¹ãã ã§ã¯ããŠãŒã¶ãŒã¢ã¯ãã£ããã£ãçµ±åã¹ã±ãžã¥ãŒã«ãå£ç¯çãªãã©ã³ã¶ã¯ã·ã§ã³ããŒã¯ãªã©ã«ãã£ãŠãäºæž¬äžå¯èœãªè² è·ãã¿ãŒã³ãçºçããŸããäœãã©ãã£ãã¯æéåãã«èª¿æŽãããæ§æã¯ãããŒã¹ãæã«æ©èœããªããªããGCã®é·æé忢ãã¡ã¢ãªäžè¶³ãšã©ãŒãçºçããå¯èœæ§ããããŸããéã«ãé«è² è·åãã«æé©åãããèšå®ã¯ããªãããŒã¯æã«ãªãœãŒã¹ã浪費ããå¯èœæ§ããããŸããé©å¿åGCãã¥ãŒãã³ã°ã¯ã芳枬ãããã¡ã¢ãªäœ¿çšéãšã·ã¹ãã ç¶æ ã«å¿ããŠã³ã¬ã¯ã¿ãŒã®åäœããªã¢ã«ã¿ã€ã ã«èª¿æŽããããšã§ããã©ã³ã¹ã®åããæŠç¥ãæäŸããŸãããã®ã¢ãããŒãã«ãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¯ããã¯ã°ã©ãŠã³ãããã»ã¹ãããã©ã³ã¿ã€ã ããã©ãŒãã³ã¹ç®¡çã«ãããã€ã³ããªãžã§ã³ãã§èªå·±èª¿æŽçãªã³ã³ããŒãã³ããžãšé²åããŸãã
é©å¿åãã¥ãŒãã³ã°ã®äž»ãªç®çã¯ãGCã«ããã¬ã€ãã³ã·å€åãæå°éã«æããªãããã¢ããªã±ãŒã·ã§ã³ã®ã¹ã«ãŒããããäžå®ã«ä¿ã€ããšã§ããææ°ã®ã³ã¬ã¯ã¿ãŒã¯ãäžæåæ¢æéç®æšãå²ãåœãŠãããå€ããªãŒãžã§ã³ãµã€ãºãªã©ã®èª¿æŽå¯èœãªãã©ã¡ãŒã¿ãæ¢ã«ãµããŒãããŠããŸããããããå®å®æ§ãå®çŸããã«ã¯ããããã®æ©èœãæå¹ã«ããã ãã§ã¯äžååã§ããã¯ãŒã¯ããŒãç¹æ§ã®ç¶ç¶çãªåæãšã芳枬ããããã¬ã¡ããªã«åºã¥ãããã¢ã¯ãã£ããªèª¿æŽãå¿ èŠã§ããé©å¿åãã¬ãŒã ã¯ãŒã¯ã¯ãã§èª¬æããåçããã©ãŒãã³ã¹å¶åŸ¡ãšå¯æ¥ã«é£æºããŠããŸãã ã³ãŒãå¹çã®æé©åãéçè§£æã«ããããã©ãŒãã³ã¹ã®ããã«ããã¯ã®æ€åºæ¹æ³ç¶ç¶çãªãã£ãŒãããã¯ã«ãããéçšã®ç²ŸåºŠãåäžããŸãã
é©å¿æŠç¥ãçå®ããããã®äœæ¥è² è·å€åã®ãããã¡ã€ãªã³ã°
ã¢ãããã£ããã¥ãŒãã³ã°ã®åºç€ã¯ãã¯ãŒã¯ããŒããæéãšãšãã«ã©ã®ããã«å€åãããããããã¡ã€ãªã³ã°ããããšã«ãããŸããå²ãåœãŠçããã©ã³ã¶ã¯ã·ã§ã³éãã¡ã¢ãªã®åžžé§ãã¿ãŒã³ãšãã£ãææšã¯ãã·ã¹ãã ããã€æ¥å¢ãããã€å®å®ããããæããã«ããŸãããããã¡ã€ãªã³ã°ã¯ãã¡ã¢ãªäœ¿çšéã®å¢å ãã¯ãŒã¯ããŒãã«èµ·å ãããã®ãããããšãéå¹çæ§ã®å åã«ãããã®ãã倿ããã®ã«åœ¹ç«ã¡ãŸãã
JVMããŒã¹ã®ã·ã¹ãã ã§ã¯ãJFRïŒJava Flight RecorderïŒãŸãã¯Micrometerã䜿çšããŠããªããžã§ã¯ãã®å²ãåœãŠãšGCã¢ã¯ãã£ããã£ã«é¢ãããªã¢ã«ã¿ã€ã çµ±èšãåéã§ããŸãã.NETç°å¢ã§ããEventPipeãŸãã¯DiagnosticSourceãä»ããŠåæ§ã®ãã¬ã¡ããªãåéã§ããŸãããããã®ã¡ããªã¯ã¹ãå¯èŠåããããšã§ãããŒã ã¯é©å¿åããªã¬ãŒãèšå®ã§ããããŒããµã€ãºã®å¢å ãã¹ã«ãŒãããäœäžæã®äžæåæ¢æéç®æšã®èª¿æŽãªã©ãGCèšå®ãåçã«èª¿æŽã§ããŸãããã®é©å¿åãããã¡ã€ãªã³ã°ã®æŠå¿µã¯ãåè¿°ã®åäœèгå¯ã®ãã¿ãŒã³ã«åºã¥ããŠããŸãã å®è¡æåæã«ãããåäœã®å¯èŠåãè¿ä»£åãå éããæ¹æ³ãè§£æåæã«ãã£ãŠçã®ã¡ããªãã¯ãå®çšçãªããã©ãŒãã³ã¹ ã€ã³ããªãžã§ã³ã¹ã«å€æãããŸãã
å®è¡æãã£ãŒãããã¯ã«ãŒããåããèªå·±èª¿æŽã³ã¬ã¯ã¿ãŒã®å®è£
Javaã®G1ãZGCã.NETã®ãµãŒããŒGCãªã©ãå€ãã®ææ°ã®ã³ã¬ã¯ã¿ãŒã¯ãèªå·±ãã¥ãŒãã³ã°ãç®çãšããã©ã³ã¿ã€ã ãã£ãŒãããã¯ã«ãŒãããµããŒãããŠããŸãããããã®ã³ã¬ã¯ã¿ãŒã¯èªèº«ã®ããã©ãŒãã³ã¹ãç£èŠãã芳枬ãããã³ã¬ã¯ã·ã§ã³ã®å¹çãšäžæåæ¢æéã«åºã¥ããŠå éšãããå€ã調æŽããŸããé©å¿åã«ãŒããå®è£ ããããšã§ãæåã«ããä»å ¥ãªãã«ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®å¿çæ§ãç¶æã§ããŸãã
ãã£ãŒãããã¯ã«ãŒãã¯éåžžãåã³ã¬ã¯ã·ã§ã³ãµã€ã¯ã«ã®åŸã«ããŒãå æçãå²ãåœãŠã¹ã«ãŒããããããã³GCå®è¡æéãè©äŸ¡ããŸããã¡ã¢ãªè² è·ãå¢å ãããšãã³ã¬ã¯ã¿ãŒã¯é åãµã€ãºãæ¡å€§ããããåæå®è¡ãµã€ã¯ã«ã®ééãççž®ããŸããéã«ãè² è·ã軜ãå Žåã¯ãã³ã¬ã¯ã·ã§ã³é »åºŠãæžããããšã§CPUãªãœãŒã¹ãç¯çŽããŸãããã®ã¢ãããŒãã¯ãã§èª¬æããéã«ãŒãæé©åææ³ãšé¡äŒŒããŠããŸãã 远跡ããå¿ èŠããããœãããŠã§ã¢ããã©ãŒãã³ã¹ææšæž¬å®å¯èœãªææšã«åºã¥ããç¶ç¶çãªèª¿æŽãéèŠããŠããŸããèªå·±èª¿æŽåã³ã¬ã¯ã¿ãŒã¯äººã«ãããã£ãªãã¬ãŒã·ã§ã³ã®å¿ èŠæ§ã軜æžããéèŠã®å€åäžã§ãã·ã¹ãã ã®å®å®æ§ãç¶æããŸãã
ã¬ã€ãã³ã·ç®æšãšã¹ã«ãŒãããç®æšã®ãã©ã³ã¹ããšã
é©å¿åãã¥ãŒãã³ã°ã§ã¯ãäœã¬ã€ãã³ã·ãšé«ã¹ã«ãŒãããã®éã§æ éã«ãã©ã³ã¹ãåãå¿ èŠããããŸããäžæåæ¢æéãæå°éã«æããããã«æ§æãããã³ã¬ã¯ã¿ãŒã¯ãå°èŠæš¡ã§é »ç¹ãªã³ã¬ã¯ã·ã§ã³ãå®è¡ãããããå²ãåœãŠçãé«ãç¶æ³ã§ã¯å¿çæ§ãäœäžããå¯èœæ§ããããŸããéã«ãã¹ã«ãŒãããéèŠã®æ§æã§ã¯ã³ã¬ã¯ã·ã§ã³ãå»¶æãããé »åºŠã¯äœããã®ã®äžæåæ¢æéãé·ããªãå¯èœæ§ããããŸããé©å¿åæŠç¥ã¯ãã¢ã¯ãã£ããªãã©ã³ã¶ã¯ã·ã§ã³ãã¿ãŒã³ã«åºã¥ããŠç¶ç¶çã«å調æŽããããšã§ããã®ãã©ã³ã¹ãè§£æ¶ããŸãã
äŸãã°ã察話åãŠãŒã¶ãŒã»ãã·ã§ã³äžã¯ãã³ã¬ã¯ã¿ãŒã¯å¿çæ§ãç¶æããããã«çãäžæåæ¢ãåªå ããŸãããããåŠçäžã¯ãå šäœçãªã¹ã«ãŒããããé«ããããã«é·ãäžæåæ¢ã蚱容ããŸãããã®ã³ã³ããã¹ãèªè調æŽã¢ãã«ã¯ãã§èª¬æããããã©ãŒãã³ã¹ã®ãã¬ãŒããªãåæãåæ ããŠããŸãã ãã£ãã·ãã£ãã©ã³ãã³ã°ãã¡ã€ã³ãã¬ãŒã è¿ä»£åæŠç¥ã®æåãå·Šå³ããæ¹æ³ã¯ãŒã¯ããŒãã«ãã£ãŠæ§æã®åªå é äœã決å®ãããŸããGCãã¥ãŒãã³ã°ãéçšã³ã³ããã¹ãã«åãããŠèª¿æŽããããšã§ãäŒæ¥ã¯ããã©ãŒãã³ã¹æé©åãçè«çãªå¹çæ§ã§ã¯ãªããå®éã®ããžãã¹ç®æšããµããŒãããããšãä¿èšŒããŸãã
ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã©ãããã©ãŒã ãžã®é©å¿ãã¥ãŒãã³ã°ã®çµ±å
KubernetesãOpenShiftãªã©ã®ã³ã³ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãç°å¢å€æ°ãããŒãªã³ã°ãããã€ã¡ã³ããéããŠã©ã³ã¿ã€ã ãã©ã¡ãŒã¿ã調æŽã§ããŸãããããã®ã·ã¹ãã ã«ã¢ãããã£ãGCãã¥ãŒãã³ã°ãçµ±åããããšã§ãããã©ãŒãã³ã¹å¶åŸ¡ãèªåã¹ã±ãŒãªã³ã°ããžãã¯ã®äžéšãšãªããŸãããããããµãŒãã¹ã§ã¡ã¢ãªäžè¶³ãçºçããå ŽåããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¹ã¯ãªããã«ãã£ãŠæ§æå€æŽãããªã¬ãŒãããã远å ã®ãªãœãŒã¹ãåçã«å²ãåœãŠããããããšãã§ããŸãã
ãã®çµ±åã«ãããGCã®åäœã¯ç¬ç«ããŠåäœããã®ã§ã¯ãªããã·ã¹ãã ããããžãŒãšèª¿åããŠé²åããããšãå¯èœã«ãªããŸãããã®ã¢ãããŒãã¯ã ãŒãããŠã³ã¿ã€ã ãªãã¡ã¯ã¿ãªã³ã° ã·ã¹ãã ããªãã©ã€ã³ã«ããã«ãªãã¡ã¯ã¿ãªã³ã°ããæ¹æ³é©å¿æ§ã«ãã£ãŠäžæã®ãªãå¯çšæ§ã確ä¿ãããŸããã¢ãããã£ãGCãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã«ãããããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã®å€æŽã«åãããŠæ¡åŒµãããç¶ç¶çããªããªãŒãã€ãã©ã€ã³ãšåæ£ç°å¢å šäœã«ããã£ãŠäºæž¬å¯èœæ§ãç¶æãããŸãã
éçããã³åœ±é¿åæã«ããé ããå²ãåœãŠãããã¹ãããã®æ€åº
é ããã¢ãã±ãŒã·ã§ã³ãããã¹ãããã¯ããšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã«ãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒè² è·ã®æãäžè¬çã§ãããªãããæãç®ã«èŠããªãåå ã®äžã€ã§ãããããã¯ãå®è¡äžã«éå°ãŸãã¯äžèŠãªäžæãªããžã§ã¯ããäœæããã³ãŒãé åã§ãããã¢ãã±ãŒã·ã§ã³çã®äžæããªããžã§ã¯ãã®å¯¿åœã®ççž®ããããŠã³ã¬ã¯ã·ã§ã³ãµã€ã¯ã«ã®é »ç¹åã«ã€ãªãããŸããã©ã³ã¿ã€ã ã¢ãã¿ãªã³ã°ã¯GCã¢ã¯ãã£ããã£ã®éå°ã瀺ãããšã¯ã§ããŸãããããã ãã§ã¯GCè² è·ã®åå ã説æããããšã¯ã§ããŸããã çŸåšãå°æ¥ããæ ¹æ¬åå ã¯ãå€ãã®å Žåãã¢ãŒããã¯ãã£ãã¿ãŒã³ãç¹°ãè¿ãã®å€æãè€è£œãããããŒã¿æ§é ããŸãã¯ãµãŒãã¹éã§èç©ãããåé·ãªæååæäœã«ãããŸããéçè§£æãšåœ±é¿è§£æã¯ãã³ãŒãã®åäœãéçšçã§ã¯ãªãæ§é çã«è§£æããããšã§ãããã®ãããã¹ããããæããã«ããã¢ããã€ãŒãŒã·ã§ã³ããŒã ãã¡ã¢ãªã¹ãã¬ã¹ã®åå ãšãªã£ãŠããã³ãŒãè¡ãæ£ç¢ºã«ç¹å®ã§ããããã«ããŸãã
æ¯æ¥æ°çŸäžä»¶ãã®ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããè€éãªã·ã¹ãã ã§ã¯ãå°ããªéå¹çæ§ãç©ã¿éãªã£ãŠå€§ããªåé¡ãšãªããŸããåäžã®ã¡ãœããããçåœãããã¡ãJSONããŒãµãŒããšã³ãã£ãã£ã©ãããŒãç¹°ãè¿ãäœæãããšãæéã®çµéãšãšãã«ããŒãã¢ã¯ãã£ããã£ãäžåè¡¡ã«ãªãå¯èœæ§ããããŸããéçæ€æ»ã«ãã£ãŠãã®ãããªãããã¹ããããç¹å®ããããšã§ãäŸµå ¥çãªã©ã³ã¿ã€ã ãããã¡ã€ãªã³ã°ã®å¿ èŠæ§ãåé¿ããéçšã®é床äœäžãé²ãããšãã§ããŸãããã®ã¢ãããŒãã¯ã ã¢ããªã±ãŒã·ã§ã³ã®ã¬ã€ãã³ã·ã«åœ±é¿ãäžããé ããã³ãŒããã¹ãæ€åºããã³ãŒãæ§é ã®å¯èŠåã«ãããé ããããžãã¯ãã¿ãŒã³ãæããã«ãªããŸããéçè§£æãšåœ±é¿åºŠè§£æã«ãããç®ã«èŠããªãå²ãåœãŠãªãŒããŒããããå®çšçãªã€ã³ããªãžã§ã³ã¹ã«å€æããããªãã¡ã¯ã¿ãªã³ã°ãšæé©åãæãéèŠãªéšåã«éç¹çã«è¡ãããšãã§ããŸãã
ã³ãŒãã¬ã€ã€ãŒéã§ã®ãªããžã§ã¯ãäœæé »åºŠã®ãããã³ã°
é ããå²ãåœãŠãããã¹ããããçºèŠããããã®æåã®ã¹ãããã¯ããªããžã§ã¯ããæãé »ç¹ã«äœæãããå Žæããããã³ã°ããããšã§ããéçè§£æããŒã«ã¯ãã³ãŒããã¹ãã¯ã©ã¹ã³ã³ã¹ãã©ã¯ã¿ããã¡ã¯ããªãŒã¡ãœãããã¹ãã£ã³ããããšã§ããªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ååæ°ãæœåºã§ããŸãããããã®åæ°ã¯ããªããžã§ã¯ãã®äœæåæ°ã ãã§ãªããç¹å®ã®ã¢ãžã¥ãŒã«ããµãŒãã¹å ã§ãã®ãããªã¢ã¯ãã£ããã£ãéäžããŠããå Žæãæããã«ããŸãã
äŸãã°ãDTOãšãšã³ãã£ãã£éã®ãããã³ã°ãè¡ãããŒã¿å€æã«ãŒãã³ã¯ããã°ãã°äžé£ãåãã«é«ãå²ãåœãŠå¯åºŠã瀺ããŸããåæ§ã«ãæååé£çµã«ãŒãããªã¯ãšã¹ãããšã®ãã£ãã·ã¥æ§é ã¯ãããžãã¹äŸ¡å€ã«èŠåã£ãææããããããªããŸãŸãGCè² è·ã«å€§ããå¯äžããŠããŸãããããã®ãããã³ã°ããåŸãããç¥èŠã¯ãéžæçãªæé©åãæ¯æŽããéçºè ã¯ããŒã¿ãããŒãåèšèšããããé«é »åºŠãªããžã§ã¯ãã«ããŒã«ãå°å ¥ãããããããšãã§ããŸãããã®ããã»ã¹ã¯ãã§èª¬æããã¿ãŒã²ããæ€åºã¢ãã«ã«åŸããŸãã COBOLãã¡ã€ã«åŠçã®æé©åãVSAMããã³QSAMã®éå¹çæ§ã®éçåæéäžçãªåæã«ãããæ§é èªèãéããŠéçšäžã®ç¡é§ãåæžãããŸãã
ãªããžã§ã¯ãã®æå¹æéãã³ãŒãã®æææš©ãšäŸåé¢ä¿ã«ãªã³ã¯ãã
å²ãåœãŠéã®å€ãé åãç¹å®ããããšã圱é¿åæã«ãã£ãŠãããã®å²ãåœãŠãã·ã¹ãã å šäœã«ã©ã®ããã«äŒæããããæããã«ãªããŸãããã®ææ³ã§ã¯ããªããžã§ã¯ãåç §ã远跡ããããããæž¡ãããå Žæãæ ŒçŽãããå ŽæããŸãã¯è¿ãããå Žæãç¹å®ããŸãããããã®ããŒã¿ãããŒãã³ãŒãã®æææš©ãšãµãŒãã¹å¢çã«ãªã³ã¯ãããããšã§ãããŒã ã¯ã©ã®ã³ã³ããŒãã³ãããªããžã§ã¯ãã®ã©ã€ãã¿ã€ã ãå¶åŸ¡ããŠããããæç¢ºã«ææ¡ã§ããŸãã
äŸãã°ãã³ã³ãããŒã©å±€ã§äœæããããªããžã§ã¯ããæ°žç¶ãã£ãã·ã¥ã«ä¿æããããšãæå³ãããããã¯ããã«é·ãåç¶ããå¯èœæ§ããããçåè ããã¢ãŒã·ã§ã³ãçºçããæçµçã«ã¯GCãµã€ã¯ã«å šäœãçºçããŸããã€ã³ãã¯ããããã¯ããããã®ä¿æãã§ãŒã³ãæããã«ããæââææš©ãççž®ãŸãã¯ç§»è¡ããå¿ èŠãããå Žæãæããã«ããŸãããã®æ¹æ³è«ã¯ã ã¬ã¬ã·ãŒããŒã ãšã¯ã©ãŠãããŒã åãã®èŠèŠçãªããããžã§ããããŒããããããŠãã¹ã¿ãŒããŸããããŒãå¯èŠåããããšã§ããã广çãªå¶åŸ¡ãå¯èœã«ãªããŸããå²ãåœãŠãäŸåé¢ä¿ããªãŒã«ãªã³ã¯ããããšã§ãéçºè ã¯è©Šè¡é¯èª€ããããšãªãããªããžã§ã¯ãã®ã©ã€ãã¿ã€ã 管çãæé©åã§ããŸãã
åé·ãªã€ã³ã¹ã¿ã³ã¹åãšé ããã¯ããŒã³ã®æ€åº
å€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã§é »ç¹ã«çºçããåé¡ã®äžã€ã«ãåäžã®ãªããžã§ã¯ããããŒã¿æ§é ãåå©çšãããã«åäœæãããåé·ã€ã³ã¹ã¿ã³ã¹åããããŸãããã®éå¹çæ§ã¯ãã·ãªã¢ã«åãšå€æãè€æ°ã®ã¬ã€ã€ãŒã«ãŸããã£ãŠè¡ããããµãŒãã¹æåã¢ãŒããã¯ãã£ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã§ç¹ã«é¡èã§ããéçè§£æã¯ãã³ã³ã¹ãã©ã¯ã¿ã®ç¹°ãè¿ãåŒã³åºãããè¿æ¥ããŠå®è¡ãããåäžã®ããŒã¿å€æãç¹å®ããããšã§ããããããã¿ãŒã³ãæ€åºããŸãã
圱é¿åæã§ã¯ããããã®ã¯ããŒã³ãGCè² è·ã«ã©ã®çšåºŠåœ±é¿ãäžããããå®éåããäžèŠãªã€ã³ã¹ã¿ã³ã¹ããšã«çºçããã¡ã¢ãªãªãŒããŒããããæšå®ããŸããéçºè ã¯ãã®ç¥èŠã掻çšããŠããã£ãã·ã¥ãåå©çšæŠç¥ãé å»¶åæåææ³ãªã©ãå®è£ ã§ããŸãããã®ææ³ã¯ãå¹çéèŠã®ããžãã¯ãšå ±éããŠããŸãã ããŒãã³ãŒããããå€ããè§£æŸãããçŸä»£ã®ãœãããŠã§ã¢ã®ããã®ããã¹ããŒããªæŠç¥èšèšäžã®æ±ºå®ãå®è¡æã®å¹çã«çŽæ¥åœ±é¿ããã±ãŒã¹ã§ã¯ãåé·ãªã€ã³ã¹ã¿ã³ã¹åãæ€åºããããšã¯æž¬å®å¯èœãªæé©åã§ãããæå°éã®ãªãã¡ã¯ã¿ãªã³ã°äœæ¥ã§ã¡ã¢ãªã®å®å®æ§ãå€§å¹ ã«åäžãããããšããã°ãã°ãããŸãã
ããžãã¹ãžã®åœ±é¿ã«åºã¥ããŠãããã¹ãããã®ãªãã¡ã¯ã¿ãªã³ã°ãåªå é äœä»ããã
ãã¹ãŠã®ãããã¹ãããã峿ã®ä¿®æ£ãå¿ èŠãšããããã§ã¯ãããŸããããã©ãã£ãã¯ã®å°ãªãã³ãŒããã¹ã«ååšãããããã¹ãããã¯ãæé©åã«ãã广ãå°ãªãå ŽåããããŸããããžãã¹ã€ã³ãã¯ãã«åºã¥ãåªå é äœä»ãã«ããããšã³ããŠãŒã¶ãŒã®ããã©ãŒãã³ã¹ãã¹ã«ãŒãããã«æã圱é¿ãäžããé åã«ãªãœãŒã¹ãéäžãããããšãã§ããŸããã€ã³ãã¯ãåæããŒã«ã¯ãå®è¡é »åºŠãšãã©ã³ã¶ã¯ã·ã§ã³ã³ã¹ãã«åºã¥ããŠå²ãåœãŠãããã¹ããããã©ã³ã¯ä»ãããã©ã®éå¹çæ§ã枬å®å¯èœãªã¬ã€ãã³ã·ããªãœãŒã¹æ¶è²»ã«ã€ãªããããå®éåã§ããŸãã
ãã®åªå é äœä»ãæŠç¥ã¯ã ã¬ã¬ã·ãŒã¢ããã€ãŒãŒã·ã§ã³ããŒãã¡ã€ã³ãã¬ãŒã ã«ãããã¬ããã³ã¹ç£èŠæé©åã¯ãåå¥ã®æè¡ç®æšã§ã¯ãªããäŒæ¥å šäœã®åªå äºé ã«åºã¥ããŠè¡ãããŸãã圱é¿ã®å€§ãããããã¹ããããã©ã³ã¯ä»ãããããšãå埩çãªãªãã¡ã¯ã¿ãªã³ã°ã®å¯Ÿè±¡ãšãªããååž°ãã¹ããšGCãã¬ã¡ããªåæã«ãã£ãŠæ€èšŒãããŸããæ§é çãªå¯èŠæ§ãšããã©ãŒãã³ã¹ææšãçµã¿åãããããšã§ãçµç¹ã¯GCãã¥ãŒãã³ã°ãããžãã¹ã¯ãªãã£ã«ã«ãªææãšæŽåããŠããããšãä¿èšŒããéçšãªã¹ã¯ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã¹ãã®äž¡æ¹ãåæžããŸãã
ãã¬ã¡ããªãšã³ãŒãã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã䜿çšã㊠GC ã®å¯èŠ³æž¬æ§ãåäžããã
广çãªã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã®æé©åã¯ã宿çãªããŒãåæã ãã§ã¯äžååã§ããç°å¢å šäœã«ãããã¡ã¢ãªã¢ã¯ãã£ããã£ãç¶ç¶çã«ãªã¢ã«ã¿ã€ã ã§å¯èŠåããå¿ èŠããããŸãããã¬ã¡ããªãšã³ãŒãã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯ãçã®GCããŒã¿ãå®çšçãªã€ã³ããªãžã§ã³ã¹ã«å€æããããšã§ããã®ã®ã£ãããåããŸããäœç³»çãªç£èŠãéããŠãããŒã ã¯ç¹°ãè¿ãçºçããå²ãåœãŠã®æ¥å¢ãé·ãäŒæ¢ééããããŠäžåäžãªããŒã䜿çšçã®ãã¿ãŒã³ãç¹å®ã§ããŸãããã®ã¢ãããŒãã«ãããGCã®ãã¥ãŒãã³ã°ã«é¢ããæ±ºå®ã¯ãäºåŸçãªãã©ãã«ã·ã¥ãŒãã£ã³ã°ã§ã¯ãªããçµéšçãªèšŒæ ã«åºã¥ããŠè¡ãããããã«ãªããŸãããã¬ã¡ããªãé©åã«çµ±åããããšã§ãããã©ãŒãã³ã¹ç£èŠã¯ååçãªã¬ããŒãã¡ã«ããºã ãããæ©æèŠåãšé©å¿å¶åŸ¡ãåããããã¢ã¯ãã£ããªã·ã¹ãã ãžãšå€åããŸãã
ã¢ããªã·ãã¯ãªããã¯ãšã³ãã·ã¹ãã ããã€ã¯ããµãŒãã¹ãã³ã³ããåããããããã€ã¡ã³ããçµã¿åãããè€éãªãã€ããªããç°å¢ãéçšããäŒæ¥ã¯ãã¡ã¢ãªéŒè¿«æã«åã©ã³ã¿ã€ã ãç°ãªãåäœããããšããç¹æã®èª²é¡ã«çŽé¢ããŠããŸããçµ±äžãããå¯èŠ³æž¬æ§ããªããã°ããããµãŒãã¹ã«ãããGCã®éå¹çæ§ãä»ã®ãµãŒãã¹ã«ãæ³¢åããæ¬æ¥ã®åå ãé èœãããå¯èœæ§ããããŸããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯ãã³ãŒãããŒã¹ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã«èšºæããã¯ãåã蟌ãããšã§ããã®çµ±äžæ§ãå®çŸããŸããããã«ãããéçšããŒã ã¯ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®åäœãšã³ã¬ã¯ã¿ãŒã®ããã©ãŒãã³ã¹ãã»ãŒãªã¢ã«ã¿ã€ã ã§çžé¢ãããããšãã§ããŸãããã®æ¹æ³è«ã¯ãã§å°å ¥ãããæ§é åå¯èŠ³æž¬æ§ãã¬ãŒã ã¯ãŒã¯ãšæŽåããŠããŸãã 圱é¿åæè¿ä»£åããŒããããã«ããããã¬ã¡ããªã®åœ¹å²çµ±åãããç£èŠã«ãããã·ã¹ãã å šäœã®çžäºäœçšã®çè§£ãå éãããŸãã
GCåæã®ããã®ææçŸ©ãªãã¬ã¡ããªã¡ããªã®ç¢ºç«
GCã®å¯èŠ³æž¬æ§ã®åºç€ã¯ãçµæã ãã§ãªãåå ãæããã«ããææšãå®çŸ©ããããšã«ãããŸããããŒãå æçãã³ã¬ã¯ã·ã§ã³åæ°ãšãã£ãæšæºçãªãã¬ã¡ããªã§ã¯ãéšåçãªå¯èŠæ§ããåŸãããŸãããããæçšãªææšãšããŠã¯ããã©ã³ã¶ã¯ã·ã§ã³ãããã®å²ãåœãŠçãSurvivorã¹ããŒã¹ã®ææ Œé »åºŠãåãµã€ã¯ã«åŸã«ä¿æãããã©ã€ãããŒã¿ã®å²åãªã©ãæããããŸãããããã®ææšã¯ãã¡ã¢ãªãã©ãã ãå¹ççã«ååãããŠãããããããŠGCã¢ã¯ãã£ããã£ãæ³å®ãããã¯ãŒã¯ããŒããã¿ãŒã³ãšäžèŽããŠãããã©ããã«ã€ããŠã®æŽå¯ãæäŸããŸãã
ãã®ããŒã¿ãååŸããããã«ãææ°ã®ãã©ãããã©ãŒã ã¯Java Management Extensions (JMX)ãGarbage First (G1) ãã°ã.NET EventCountersãªã©ã®ã©ã³ã¿ã€ã ããã¯ãšçµ±åãããŠããŸãããããã®å ¥åãäžè²«ãããã¬ã¡ããªã¹ããŒãã«æšæºåããããšã§ãããŒã ã¯ã©ã³ã¿ã€ã å šäœã®ããã©ãŒãã³ã¹ãèŠèŠåããããã·ã¥ããŒããæ§ç¯ã§ããŸãããã®æ§é åãããããŒã¿åéã¯ãåè¿°ã®åæèšèšãåæ ããŠããŸãã 远跡ããå¿ èŠããããœãããŠã§ã¢ããã©ãŒãã³ã¹ææšéžæçãªææšèšèšã蚺æç²ŸåºŠãå·Šå³ããŸããäžè²«ãããã¬ã¡ããªãã¬ãŒã ã¯ãŒã¯ã確ç«ããããšã§ãGCåæã¯è¡šé¢çãªå ±åã§ã¯ãªãæ ¹æ¬åå ã®ç¹å®ããµããŒãã§ããããã«ãªããŸãã
åäœè¿œè·¡ã®ããã®ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã®å®è£
ã©ã³ã¿ã€ã ã¡ããªã¯ã¹ã¯ãäœããã瀺ãã®ã«å¯Ÿããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯ããªãããæããã«ããŸããã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯ãå®è¡ãããŒå ã®å²ãåœãŠã¢ã¯ãã£ããã£ããã©ã³ã¶ã¯ã·ã§ã³æéããªããžã§ã¯ãã®åç¶æéãèšé²ãã軜éã®è¿œè·¡ã³ãŒããåã蟌ã¿ãŸããããã«ãããç¹å®ã®ã³ãŒãã»ã°ã¡ã³ããšGCã®åœ±é¿ãšã®çžé¢é¢ä¿ãææ¡ã§ããã·ã¹ãã ãã¬ã¡ããªãšæ©èœããžãã¯ã®ã®ã£ãããåããããšãã§ããŸãã
OpenTelemetryãApplication Insightsãªã©ã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã©ã€ãã©ãªã¯ããªãŒããŒããããå€§å¹ ã«å¢å ãããããšãªãããŒã¿ãåéãããããæ¬çªç°å¢ã§ã®äœ¿çšã«é©ããŠããŸãããããã®ã©ã€ãã©ãªã¯ãã³ãŒãã¢ãžã¥ãŒã«ãAPIãããã«ã¯æ¥åãªãã¬ãŒã·ã§ã³ã«è³ããŸã§ã®å²ãåœãŠããã¬ãŒã¹ããGCã®è² è·ã«ã€ãªããéå¹ççãªããŒã¿åŠçãã¿ãŒã³ãçºèŠããããšãã§ããŸãããã®ã¢ãããŒãã¯ã ãšã³ã¿ãŒãã©ã€ãºã¢ããªã®æ ¹æ¬åå åæã®ããã®ã€ãã³ãçžé¢çžé¢åæã«ãã£ãŠãå€ç«ããã€ãã³ããæèçãªç¥èã«å€æãããŸããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ããŒã¿ãšGCã¡ããªã¯ã¹ãçµã¿åãããããšã§ãéå°ãªå²ãåœãŠãçæãããã©ã³ã¶ã¯ã·ã§ã³ãç¹å®ãããã®çºçæºã§éå¹çæ§ã«å¯ŸåŠããããšãã§ããŸãã
ç¶ç¶çããªããªãŒãã€ãã©ã€ã³ãžã®å¯èŠ³æž¬æ§ã®çµ±å
GCã®å¯èŠ³æž¬æ§ã¯ãç¶ç¶çããªããªãŒããã»ã¹ã«çµã¿èŸŒãããšã§æã䟡å€ãçºæ®ããŸããã³ãŒã倿Žããšã«ãã¡ã¢ãªäœ¿çšéãå²ãåœãŠçãã³ã¬ã¯ã¿ãŒå¹çãè©äŸ¡ããããã©ãŒãã³ã¹ããŒã¹ã©ã€ã³ãèªåçã«ããªã¬ãŒãããå¿ èŠããããŸããCI/CDãã€ãã©ã€ã³ã«ãã¬ã¡ããªãçµ±åããããšã§ãæ¬çªç°å¢ãžã®ãããã€åã«ãªã°ã¬ãã·ã§ã³ãæ©æã«æ€åºã§ããŸãã
ãã®ç¶ç¶çãªæ€èšŒã¢ãããŒãã«ãããããã©ãŒãã³ã¹åºæºãã³ãŒãããŒã¹ãšå ±ã«é²åããããšãä¿èšŒãããŸããéå»ã®ãã¬ã¡ããªæ¯èŒã«ãããæ°ãããªãªãŒã¹ãGCã®æåã«æéã®çµéãšãšãã«ã©ã®ããã«åœ±é¿ããããæããã«ãªããéçºè ã«å®éçãªãã£ãŒãããã¯ãæäŸããŸãããã®ããã»ã¹ã¯ã ã¡ã€ã³ãã¬ãŒã ã®ãªãã¡ã¯ã¿ãªã³ã°ãšã·ã¹ãã ã®è¿ä»£åã®ããã®ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³æŠç¥ãã£ãŒãããã¯ã«ãŒããè¿ éãªå埩åŠçã«ãããŠå質ã確ä¿ããŸããããªããªãŒãã€ãã©ã€ã³ã«å¯èŠ³æž¬æ§ãçµ±åããããšã§ãGCæé©åã¯ã¡ã³ããã³ã¹ã¿ã¹ã¯ããçµã¿èŸŒã¿ã®å質ä¿èšŒããã»ã¹ãžãšé²åããŸãã
å ±å蚺æã®ããã®ãã¬ã¡ããªã®å¯èŠå
çã®ãã¬ã¡ããªããŒã¿ã¯ã广çã«å¯èŠåãããªããã°ããã®å¹æã¯éå®çã§ããGCã®äžæåæ¢ãã¡ã¢ãªäœ¿çšéãå²ãåœãŠé »åºŠãæç³»åã§ãããã³ã°ããããã·ã¥ããŒãã¯ãè€éãªæ å ±ãžã®çŽæçãªã¢ã¯ã»ã¹ãæäŸããŸããã¢ããªã±ãŒã·ã§ã³ã®ã¹ã«ãŒããããCPU䜿çšçããªã¯ãšã¹ãéãéãåãããããšã§ããããã®å¯èŠåã«ãããéšé暪æçãªããŒã ãååããŠåé¡ã蚺æã§ããããã«ãªããŸãã
GrafanaãDatadogãKibanaãšãã£ãææ°ããŒã«ã¯ãGCãã¬ã¡ããªã¹ããªãŒã ãåã蟌ã¿ãã«ã¹ã¿ã ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ããŒã¿ãšçžé¢ãããããšãã§ããŸããå¯èŠåã«ãã£ãŠãã¿ãŒã³èªèã容æã«ãªããç¹°ãè¿ãçºçããã¹ãã€ã¯ãé ãååãµã€ã¯ã«ãããŒãã®äžåè¡¡åŸåãªã©ã匷調ãããŸãããã®èŠèŠçãªãã£ãŒãããã¯ã«ãŒãã¯ãæ§é åå¯èŠåã®ååãåæ ããŠããŸãã ã³ãŒãã®èŠèŠå ã³ãŒããå³è¡šã«å€æããã¯ãæææ±ºå®ã®åºç€ãšããŠæç¢ºããéèŠããŠããŸããå¯èŠ³æž¬æ§ã«é¢ããæŽå¯ãæç¢ºã«å¯èŠåããããšãããã©ãŒãã³ã¹ãšã³ãžãã¢ãéçºè ãã¢ãŒããã¯ãã¯è¿ éã«å¯Ÿå¿ã調æŽã§ããå¹³ååŸ©æ§æéãççž®ããé·æçãªã·ã¹ãã å埩åãåäžãããããšãã§ããŸãã
忣ããã³ãã€ã¯ããµãŒãã¹ç°å¢åãGCã¢ã«ãŽãªãºã ã®è©äŸ¡
忣åããã³ãã€ã¯ããµãŒãã¹ããŒã¹ã®ç°å¢ã«é©ããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã¢ã«ãŽãªãºã ãéžæããããšã¯ããšã³ã¿ãŒãã©ã€ãºããã©ãŒãã³ã¹ç®¡çã«ãããŠæã圱é¿åã®ããæè¡çæææ±ºå®ã®äžã€ã§ããåã¢ã«ãŽãªãºã ã¯ã¡ã¢ãªç®¡çã®æ¹æ³ãããããç°ãªããã¯ãŒã¯ããŒãç¹æ§ã«å¿ããŠã¹ã«ãŒããããäžæåæ¢æéãCPU䜿çšçã®ãã©ã³ã¹ãåããŸããã¢ããªã·ãã¯ã·ã¹ãã ã«é©ããæ§æã¯ãã¯ãŒã¯ããŒããå€åãããµãŒãã¹ãåå¥ã«ã¹ã±ãŒãªã³ã°ããã忣åãŸãã¯ã³ã³ããåãããã¢ãŒããã¯ãã£ã«ãããã€ãããšãå€ãã®å Žåæ©èœããŸããããããã£ãŠãGCã¢ã«ãŽãªãºã ãè©äŸ¡ããã«ã¯ããã®å éšã¡ã«ããºã ãšãããã€ã¡ã³ãããããžãšã®æŽåæ§ã®äž¡æ¹ãçè§£ããå¿ èŠããããŸãã
ãã€ã¯ããµãŒãã¹ãšã³ã·ã¹ãã ã§ã¯ãåã³ã³ãããŸãã¯ããŒããç¬ç«ããã¡ã¢ãªå¶çŽãæã€ç¬èªã®ã©ã³ã¿ã€ã ããã¹ãããå¯èœæ§ããããããGCã€ã³ã¹ã¿ã³ã¹éã®é£æºãå šäœã®å®å®æ§ãç¶æããããã«äžå¯æ¬ ã§ãããããµãŒãã¹ã§GCã®äžæåæ¢ãé·æéç¶ããšãäžæµã®ãã©ã³ã¶ã¯ã·ã§ã³ãé å»¶ããããäžæµã§èª€ã£ãã¿ã€ã ã¢ãŠããçºçãããããå¯èœæ§ããããŸããJavaã®G1ãZGCãShenandoahã.NETã®ãµãŒããŒGCãããã¯ã°ã©ãŠã³ãGCãªã©ã®ææ°ã®ã³ã¬ã¯ã¿ãŒã¯ãããããäžæãæå°éã«æããããã«èšèšãããŠããŸãããããã®ã³ã¬ã¯ã¿ãŒãéžæããéã«ã¯ãããŒããµã€ãºã®å€åæ§ãã¬ã€ãã³ã·èš±å®¹åºŠããµãŒãã¹ããšã®æ³å®å²ãåœãŠçãåæããå¿ èŠããããŸããæŠç¥çè©äŸ¡ããã»ã¹ã¯ãåè¿°ã®ã¢ãŒããã¯ãã£ã®é©å¿æ§ãåæ ããŠããŸãã ãã€ã¯ããµãŒãã¹ã¯ãå®éã«æ©èœããå®èšŒæžã¿ã®ãªãã¡ã¯ã¿ãªã³ã°æŠç¥ãå·æ°ããŸãããã©ãŒãã³ã¹ ãã¥ãŒãã³ã°ã¯ãåŸæ¥ã®æ³å®ã«é Œãã®ã§ã¯ãªãã忣ãããçŸå®ã«é©å¿ããŸãã
äžä»£å¥ãé åããŒã¹ãåæå®è¡ã¢ã«ãŽãªãºã ã®æ¯èŒ
GCè©äŸ¡ã®åºç€ã¯ãã³ã¬ã¯ã¿ãŒãã©ã®ããã«ã¡ã¢ãªãæŽçãåŠçããããçè§£ããããšã«ãããŸããParallel GCãCMSãªã©ã®äžä»£å¥ã¢ã«ãŽãªãºã ã¯ãããŒããè¥ãé åãšå€ãé åã«åå²ããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§äž»ã«å©çšãããçåœãªãªããžã§ã¯ãåãã«æé©åããŸããG1ãªã©ã®é åããŒã¹ã®ã³ã¬ã¯ã¿ãŒã¯ãããŒããããå°ããªéé£ç¶é åã«åå²ããåå¥ã«ååããããšã§ãæçåãããç¶æ³ã§ã®å¹çãåäžãããŸããZGCãShenandoahãªã©ã®äžŠè¡ã³ã¬ã¯ã¿ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®è¡ãšäžŠè¡ããŠããŒãã³ã°ãšã³ã³ãã¯ã·ã§ã³ãå®è¡ããããšã§ãã¹ãããã»ã¶ã»ã¯ãŒã«ãã«ãã忢ãæå°éã«æããŸãã
åã¢ã«ãŽãªãºã ã¯ãç°ãªãã¯ãŒã¯ããŒãæ¡ä»¶ã«ãããŠå©ç¹ãçºæ®ããŸããäžä»£å¥ã³ã¬ã¯ã¿ãŒã¯ãäžè²«æ§ã®ããå²ãåœãŠãšçåœãªãªããžã§ã¯ãã®ã¿ãŒã³ãªãŒããŒã«æé©ã§ããé åããŒã¹ã³ã¬ã¯ã¿ãŒã¯ããªããžã§ã¯ãã®å¯¿åœãå€åããããŒããµã€ãºã倧ããã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸããåæå®è¡ã³ã¬ã¯ã¿ãŒã¯ãé·æéã®åæ¢ã蚱容ã§ããªãäœã¬ã€ãã³ã·ç°å¢ã§åªããæ§èœãçºæ®ããŸãããã®æææ±ºå®ããã»ã¹ã¯ãåè¿°ã®æ¯èŒåæã¢ãã«ãåæ ããŠããŸãã 2025å¹Žã®ææ°ã¡ã€ã³ãã¬ãŒã ã«ãããJCLåãéçè§£æãœãªã¥ãŒã·ã§ã³ææ³ã®éžæã¯ãã¯ãŒã¯ããŒãã®äºæž¬å¯èœæ§ãšéçšäžã®å¶çŽã«äŸåããŸããã³ã¬ã¯ã¿ãŒèšèšãè©äŸ¡ããããšã§ãGCæ§æãã©ã³ã¿ã€ã ã¢ãŒããã¯ãã£ãå¶çŽããã®ã§ã¯ãªããè£å®ããããšã確å®ã«ããŸãã
ã³ã¬ã¯ã¿ãŒã®åäœããµãŒãã¹ããããžãŒã«åããã
GCã¢ã«ãŽãªãºã ã®ããã©ãŒãã³ã¹ã¯ããªããžã§ã¯ãã®çåæéãã¿ãŒã³ã ãã§ãªãããµãŒãã¹éã§ã®ã¡ã¢ãªã®åæ£æ¹æ³ã«ãäŸåããŸãããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã§ã¯ãäžéšã®ã³ã³ããŒãã³ãã¯çåœã®ã¹ããŒãã¬ã¹ãµãŒãã¹ãšããŠåäœããä»ã®ã³ã³ããŒãã³ãã¯é·æçãªç¶æ ããã£ãã·ã¥ãç¶æããŸãããã¹ãŠã®ãµãŒãã¹ã«åäžãªGCèšå®ãé©çšãããšããããã®éããç¡èŠãããéå¹çãªåŠçãçºçããŸãããã®ãããåãµãŒãã¹ã®å ·äœçãªåœ¹å²ã«åãããŠã³ã¬ã¯ã¿ãŒã®åäœã調æŽããå¿ èŠããããŸãã
äŸãã°ãæ°åã®åæãªã¯ãšã¹ããåŠçããAPIã²ãŒããŠã§ã€ã¯ãZGCã®ãããªäœã¬ã€ãã³ã·ã®ã³ã¬ã¯ã¿ãŒã®æ©æµãåããäºæž¬å¯èœãªãããåŠçã䌎ãã¬ããŒããµãŒãã¹ã¯G1ãŸãã¯äžŠåGCã«ãã£ãŠå¹ççã«åäœããŸãããã®ãµãŒãã¹åºæã®æ§æã¢ãã«ã¯ã ã¬ã¬ã·ãŒã·ã¹ãã æŽæ°ã®åºç€ãšããŠã®ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³çµ±åçžäºéçšæ§ãšå·®å¥åãæé©åãå°ããŸããã³ã¬ã¯ã¿ãŒèšèšãããããžãŒãšæŽåãããããšã§ãçµç¹ã¯éå°ãªããããžã§ãã³ã°ãé²ããåçã«æ¡åŒµãããã·ã¹ãã å šäœã§äžè²«ããã¡ã¢ãªåäœã確ä¿ã§ããŸãã
ã³ã³ããåãããç°å¢ã§ã®GCããã©ãŒãã³ã¹ã®è©äŸ¡
ã³ã³ããåã¯ãç¹ã«ã¡ã¢ãªå¶éãšã©ã³ã¿ã€ã åé¢ã«é¢ããŠãGCããã©ãŒãã³ã¹ã«æ°ããªå¶çŽããããããŸããã³ã³ããã¯éåžžãCPUãšã¡ã¢ãªã®äžéãå®çŸ©ããcgroupå ã§åäœããŸãããå€ãã®ã³ã¬ã¯ã¿ãŒã¯ããšããšåºå®ããã倧ããªããŒãåãã«èšèšãããŠããŸãããã³ã³ãããã¡ã¢ãªäžéã«éãããšãGCã¯ããŒããæ¡åŒµã§ããªããªããã¹ã«ãŒããããäœäžãããç©æ¥µçãªã³ã¬ã¯ã·ã§ã³ãµã€ã¯ã«ã匷å¶ããŸãããããã®å¶çŽäžã§GCã¢ã«ãŽãªãºã ãè©äŸ¡ããã«ã¯ããã¬ãããã¯ã·ã§ã³ç°å¢ã§ã³ã³ããåãããåäœãã·ãã¥ã¬ãŒãããã³ã¬ã¯ã¿ãŒãéããããªãœãŒã¹ã«ã©ã®ããã«åå¿ãããã芳å¯ããå¿ èŠããããŸãã
Kubernetesã¡ããªã¯ã¹ãµãŒããŒãã³ã³ããåºæã®ãã¬ã¡ããªãªã©ã®ããŒã«ã¯ãã³ã³ããã®ãã«ã¹ããŒã¿ãšãšãã«GCçµ±èšãå ¬éããããŒããµã€ãºããªãŒãžã§ã³èšå®ã®åŸ®èª¿æŽãå¯èœã«ããŸãããã®è©äŸ¡ã¢ãããŒãã¯ãåè¿°ã®äºæž¬åæææ³ãšäžèŽããŠããŸãã ã¡ã€ã³ãã¬ãŒã ããã¯ã©ãŠããžã®ç§»è¡ïŒèª²é¡ãå æããªã¹ã¯ã軜æžçŸå®çãªã€ã³ãã©ã¹ãã©ã¯ãã£æ¡ä»¶äžã§ã®ãã¹ãã«ãããå埩åã確ä¿ããŸããã³ã³ãã察å¿ã®GCãã¥ãŒãã³ã°ã«ããã忣ã·ã¹ãã ã¯éå°ãªãµã€ãºèšå®ãªãã«ã¡ã¢ãªã®å®å®æ§ãå®çŸããã¹ã±ãŒã©ããªãã£ãšã³ã¹ãå¹çã®äž¡æ¹ããµããŒãããŸãã
忣ã·ã¹ãã éã§ã® GC ã調æŽããŠã¯ãŒã¯ããŒãã®äžè²«æ§ã確ä¿ãã
忣ã¢ãŒããã¯ãã£ã§ã¯ãç°ãªãããŒãéã§GCåäœã«äžè²«æ§ããªãå Žåãããã©ãŒãã³ã¹ç°åžžãçºçããããšããããããŸããããŒã䜿çšéããªããžã§ã¯ãã®å²ãåœãŠçããŸãã¯ãµãŒãã¹ã®è² è·åæ£ã®å€åã«ããéåæã®äžæåæ¢ãçºçããäŸåãããã©ã³ã¶ã¯ã·ã§ã³éã®ã¬ã€ãã³ã·ãå¢å€§ããå¯èœæ§ããããŸããããŒãéã§GCã¢ã¯ãã£ããã£ã調æŽããããšã§ãã¡ã¢ãªãµã€ã¯ã«ã調æŽãããã©ã³ã¶ã¯ã·ã§ã³ã®ã¹ã«ãŒããããå¹³æ»åããããšã§ããã®åé¡ã軜æžã§ããŸãã
ãã®èª¿æŽã¯ããã¹ãŠã®ããŒãããã®GCã¡ããªã¯ã¹ãéçŽãããµãŒãã¹ã¬ãã«ãã©ã¡ãŒã¿ãåçã«èª¿æŽããç£èŠã·ã¹ãã ã«ãã£ãŠå®çŸã§ããŸããããããŒãã®åæ¢æéãé·ããªã£ãå ŽåããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããžãã¯ã«ãã£ãŠã¯ãŒã¯ããŒããåé åããããããŒãå§çž®ãããã¢ã¯ãã£ãã«ããªã¬ãŒãããã§ããŸããåæã®åçã¯ãã§æŠèª¬ãã調æŽãã¬ãŒã ã¯ãŒã¯ãšé¡äŒŒããŠããŸãã æ®µéçãªè¿ä»£åãå¯èœã«ãããšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³åæ£ã³ã³ããŒãã³ããã·ãŒã ã¬ã¹ã«é£æºããç°å¢ã§ããããŒãéã§GCã調æŽããããšã§ã忣ã¢ããªã±ãŒã·ã§ã³ã¯äºæž¬å¯èœãªã¬ã€ãã³ã·ãç¶æããé£éçãªé床äœäžãé²ããè² è·å€åã®æ¿ããç¶æ³ã§ãäžè²«ããããã©ãŒãã³ã¹ãç¶æã§ããŸãã
䞊åå®è¡ãŸãã¯ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãäžã®GCã¹ããŒã ã®é²æ¢
äŒæ¥ã䞊åå®è¡ããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ããªã©ã®ã¢ããã€ãŒãŒã·ã§ã³ã€ãã·ã¢ããã宿œããéãè€æ°ã®ã·ã¹ãã ããŒãžã§ã³ãäžæçã«åæéçšããŸãããã®ã¢ãŒããã¯ãã£ã¯ç¶ç¶æ§ãä¿èšŒããŸãããé ããããã©ãŒãã³ã¹ãã¶ãŒããããªãã¡ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã¹ããŒã ãåŒãèµ·ãããŸããGCã¹ããŒã ã¯ãã¢ããªã±ãŒã·ã§ã³ã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ã§åæãŸãã¯éè€ããã³ã¬ã¯ã·ã§ã³ãµã€ã¯ã«ãçºçãããšçºçããç°å¢å šäœã§CPU䜿çšçã®æ¥äžæãã¬ã€ãã³ã·ã®æ¥å¢ããŸãã¯ã¹ã«ãŒãããã®äœäžãåŒãèµ·ãããŸãããããã®ã€ãã³ãã¯ã¢ããªã±ãŒã·ã§ã³ããžãã¯ã§ã¯ãªãã©ã³ã¿ã€ã åæã«èµ·å ããããã詳现ãªã¡ã¢ãªèŠ³æž¬ãªãã«ã¯äºæž¬ã蚺æãå°é£ã§ããGCã¹ããŒã ãé²ãã«ã¯ããããã€ã¡ã³ãããããžå šäœã«ããã£ãŠãã³ã¬ã¯ã¿ãŒã®ã¿ã€ãã³ã°ããªãœãŒã¹å²ãåœãŠãã€ã³ã¹ã¿ã³ã¹éã®èª¿æŽã®ãã©ã³ã¹ãåãå¿ èŠããããŸãã
ãã«ãç°å¢ããŒã«ã¢ãŠãã§ã¯ãåäžã®ã¢ããªã±ãŒã·ã§ã³æ§æãæ¬çªç°å¢ãšã¹ããŒãžã³ã°ç°å¢ã«è€è£œãããå€ãã®å Žåãåãã¯ãŒã¯ããŒããã£ãŒãããã©ã³ã¶ã¯ã·ã§ã³ãã¥ãŒãå ±æãããŸããããã«ããåæãã€ã³ããäœæãããã€ã³ã¹ã¿ã³ã¹éã®GCã¢ã¯ãã£ããã£ãæå³ãã調æŽãããå¯èœæ§ããããŸãã倧éã®å ¥ååŠçæã«ã¯ãè€æ°ã®ã€ã³ã¹ã¿ã³ã¹ã®ã³ã¬ã¯ã¿ãŒãåæã«åæ¢ããå¯èœæ§ããããæ°Žå¹³ã¹ã±ãŒã«ã®ã·ã¹ãã ã§ãã£ãŠãã¬ã€ãã³ã·ãå¢å€§ããŸãããã®åé¡ã¯ãã§èª¬æããé£éçãªé害ãã¿ãŒã³ãåæ ããŠããŸãã 圱é¿åæãšäŸåé¢ä¿ã®å¯èŠåã«ããé£éçãªé害ã®é²æ¢ã·ã¹ãã ã®åæã«ãããåçºçãªé床äœäžãåºç¯å²ã«ããã忢ã«çºå±ããã±ãŒã¹ããããŸããGCã¹ããŒã ãé²ãã«ã¯ãã³ã¬ã¯ã¿ãŒãµã€ã¯ã«ã®äºåã®éåæåãšãå®è¡äžã®ãã¹ãŠã®ç°å¢ã«ããããªãœãŒã¹é åã®æ éãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãå¿ èŠã§ãã
ç°å¢éã§ã³ã¬ã¯ã¿ãŒãµã€ã¯ã«ãããã
GCã¹ããŒã ãç·©åããããã®æã广çãªæŠç¥ã®äžã€ã¯ã䞊åç°å¢å šäœã«ããã£ãŠã³ã¬ã¯ã¿ãŒã®ã¹ã±ãžã¥ãŒã«ããããããšã§ããéå§æå»ãè² è·å°çãã¿ãŒã³ãæå³çã«ãããããšã§ãCPU䜿çšçã®éäžã«ã€ãªããGCãµã€ã¯ã«ã®éè€ãåé¿ã§ããŸããKubernetesãªã©ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã©ãããã©ãŒã ã¯ããããã®åæåã·ãŒã±ã³ã¹ã調æŽãããããã©ãã£ãã¯åæ£éå§åã«ããŒãç¶æ ã倿Žããããã¯ã°ã©ãŠã³ããŠã©ãŒã ã¢ããã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ãããããããšã§ãGCã¹ããŒã ã®ç·©åãæ¯æŽããŸãã
ããŒãã®äºååŠçã¯ãåæGCã¢ã¯ãã£ããã£ã®é²æ¢ã«ã圹ç«ã¡ãŸããã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«ã¯ãåæå²ãåœãŠããŒã¹ããã€ã³ã¹ã¿ã³ã¹éã§åæããããšããããããŸãããã£ãã·ã¥ãäºåããŒãããããæ®µéçã«åæåãããããããšã§ãåç°å¢ã®ã¡ã¢ãªç¶æ ããããã«åæ£ããåæGCããªã¬ãŒã®å¯èœæ§ãäœæžããŸãããã®æ¹æ³ã¯ãã§æŠèª¬ããå¶åŸ¡ãããåæåææ³ãåæ ããŠããŸãã COBOLã·ã¹ãã ã®çœ®ãæãäžã®äžŠåå®è¡æéã®ç®¡ç段éçãªã¢ã¯ãã£ããŒã·ã§ã³ã«ãããå ±åããã·ã¹ãã å šäœã®å®å®æ§ã確ä¿ãããŸããæ®µéçãªåéãµã€ã¯ã«ãå®è£ ããããšã§ãåç°å¢ãç¬ç«ããŠåäœãããããã€ã¡ã³ãç°å¢å šäœã§ããã©ãŒãã³ã¹ã®åè¡¡ãç¶æãããŸãã
åæå§åã軜æžããããã«ããŒããµã€ãºã調æŽãã
GCã¹ããŒã ã®ããäžã€ã®èŠå ã¯ãããŒããµã€ãºã®åäžåã§ããã€ã³ã¹ã¿ã³ã¹éã§åäžã®ããŒãæ§æãèšå®ãããšãGCãããå€ã®ããªã¬ãŒãåäžã«ãªããåæããäžæåæ¢ã€ãã³ããçºçããŸããããŒããµã€ãºãå²ãåœãŠãããå€ã«ããããªå€åãå ãããšããã®å¯Ÿç§°æ§ã厩ããã³ã¬ã¯ã¿ãŒãéåæçã«èµ·åããããã«ãªããŸããäŸãã°ãJVMãããã€ã¡ã³ãã§ã¯ãã¬ããªã«éã§ã-XmsããŸãã¯ã-Xmxããã©ã¡ãŒã¿ããããã«èª¿æŽããããšã§ãã¯ã©ã¹ã¿ãŒå šäœã§GCã®ã¿ã€ãã³ã°ã忣ãããããšãã§ããŸãã
ã³ã³ããåããããããã€ã¡ã³ãã§ã¯ãèªåã¹ã±ãŒãªã³ã°æŠç¥ã«ãã£ãŠç°ãªããªãœãŒã¹å¶éãé©çšããããšã§åæ§ã®å¹æãåŸãããŸããããŒããµã€ãºããããã«å€§ãããããšGCé »åºŠãæžããããŒããµã€ãºãå°ãããããšã³ã¬ã¯ã·ã§ã³ã®èŠåæ§ãé«ãŸããèªç¶ã«éåæåããããªãºã ãçãŸããŸãããã®æ¹æ³ã¯ãåè¿°ã®é©å¿åã¹ã±ãŒãªã³ã°ã®ã¢ãããŒããšé¡äŒŒããŠããŸãã ãã£ãã·ãã£ãã©ã³ãã³ã°ãã¡ã€ã³ãã¬ãŒã è¿ä»£åæŠç¥ã®æåãå·Šå³ããæ¹æ³ãªãœãŒã¹ã®å€åã«ãã£ãŠã·ã¹ãã å šäœã®å®å®æ§ãåäžããŸããå¶åŸ¡ãããããŒãã®å€æ§æ§ã«ãããåäžã®GCã€ãã³ããã·ã¹ãã ããã©ãŒãã³ã¹ãå·Šå³ããããšããªããªããè² è·ãããã£ãŠãäžè²«ããã¹ã«ãŒããããç¶æã§ããŸãã
ãã¬ã¡ããªã«ããã€ã³ã¹ã¿ã³ã¹é GC åæã®ç£èŠ
äºé²ã¯æ€ç¥ã«ããã£ãŠããŸããé©åã«æ§æãããã·ã¹ãã ã§ãã£ãŠããGCã¢ã¯ãã£ããã£ãéåæã§ããããšãä¿èšŒããããã«ã¯ç¶ç¶çãªç£èŠãå¿ èŠã§ãããã¬ã¡ããªãã©ãããã©ãŒã ã¯ããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ããã³ã¬ã¯ã¿ãŒã¡ããªã¯ã¹ãéçŽããããŒãéã®äžæåæ¢æéãå²ãåœãŠçãã³ã³ãã¯ã·ã§ã³ãµã€ã¯ã«ã衚瀺ã§ããŸããçžé¢ã°ã©ãã¯åæããåäœã®ãã¿ãŒã³ãè¿ éã«æããã«ãããããéçšããŒã ã¯ããã©ãŒãã³ã¹ã®äœäžããŠãŒã¶ãŒã«æããã«ãªãåã«ä»å ¥ããããšãã§ããŸãã
ã€ã³ã¹ã¿ã³ã¹éãã¬ã¡ããªã¯ãGCã€ãã³ãã®ã¯ã©ã¹ã¿ãªã³ã°ãæ€åºããé«åºŠãªã¢ã©ãŒãã«ãŒã«ããµããŒãããŠããŸããäŸãã°ãå®çŸ©ãããæéæ å ã§ããŒãã®åæ°ä»¥äžã§GCã®äžæåæ¢ãçºçããå ŽåããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¹ã¯ãªããã¯è² è·ãåé åããããäžæçãªèªåã¹ã±ãŒãªã³ã°ãããªã¬ãŒããŠåœ±é¿ãåžåãããã§ããŸãããã®ææ³ã¯ãã§èª¬æããäºæž¬çã€ã³ãµã€ãã¢ãã«ã«å¯Ÿå¿ããŠããŸãã ããŒã¿ã¡ãã·ã¥ã®ååãã¬ã¬ã·ãŒã¢ããã€ãŒãŒã·ã§ã³ã¢ãŒããã¯ãã£ã«é©çšãã忣ããŒã¿ç£èŠã«ãã£ãŠå埩åã確ä¿ããŸããåæGCã®åäœãç£èŠããããšã§ãäºåŸå¯Ÿå¿åã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãããã¢ã¯ãã£ããªãªãŒã±ã¹ãã¬ãŒã·ã§ã³å¶åŸ¡ãžãšå€é©ããŸãã
GCéåæåã®ããã®ãããã€ã¡ã³ããã€ãã©ã€ã³ã®èšèš
æåŸã«ããã«ãŒã°ãªãŒã³ãããã€ã䞊åãããã€ã«ãããGCã®å®å®æ§ã¯ããããã€ããã»ã¹èªäœã«çµã¿èŸŒãå¿ èŠããããŸããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãã€ãã©ã€ã³ã«ã¯ãå®å šãªããŒã«ã¢ãŠãã®åã«ãã«ããªã¢ã€ã³ã¹ã¿ã³ã¹éã®GC忣ãè©äŸ¡ãããããã€åãã§ãã¯ãå«ããå¿ èŠããããŸããããã©ãŒãã³ã¹ãã¹ãã§ã¯ãåæè² è·åæ£ãã·ãã¥ã¬ãŒãããããšã§ãæ¬çªç°å¢äžã§GCãµã€ã¯ã«ã忣ãããç¶æ ãç¶æã§ããããšã確èªã§ããŸãã
ãããã€ã¡ã³ãã¹ã¯ãªããã¯ãã¬ããªã«ããšã«ã©ã³ãã åãããGCãã©ã¡ãŒã¿ãå°å ¥ããæ§æãã³ãã¬ãŒããé©çšããããšãã§ããŸãããããã®ã©ã³ãã åããããªãã»ããã¯ãã³ãŒãããŒã¹ãšã©ã³ã¿ã€ã ãåäžã®å Žåã§ããã·ã¹ãã å šäœã®åæã鲿¢ããŸãããã®ã¢ãããŒãã¯ãã§ç޹ä»ããèªåæ€èšŒæŠç¥ãšäžèŽããŠããŸãã ã¡ã€ã³ãã¬ãŒã ã®ãªãã¡ã¯ã¿ãªã³ã°ãšã·ã¹ãã ã®è¿ä»£åã®ããã®ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³æŠç¥ãããã€ã¡ã³ãã¬ããã³ã¹ã«ãã£ãŠããã©ãŒãã³ã¹ã®äºæž¬å¯èœæ§ã匷åãããŸããGCéåæåããããã€ã¡ã³ããã€ãã©ã€ã³ã«çµ±åããããšã§ãã¢ããã€ãŒãŒã·ã§ã³ãããžã§ã¯ãã¯éçšã®ç¶ç¶æ§ãç¶æããªããããã€ããªãããŸãã¯ã¯ã©ãŠããã€ãã£ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£å šäœã«ã·ãŒã ã¬ã¹ã«æ¡åŒµã§ããŸãã
GC ã¡ããªã¯ã¹ã CI/CD ããã©ãŒãã³ã¹ååž°ãã¬ãŒã ã¯ãŒã¯ã«çµ±åãã
ç¶ç¶çããªããªãŒç°å¢ã§ã¯ã埮现ãªã¡ã¢ãªå€æŽã«ãã£ãŠåŒãèµ·ããããããã©ãŒãã³ã¹ã®äœäžã¯ãæ¬çªç°å¢ã«å°éãããŸã§æ€åºãããªãããšããããããŸããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã¡ããªã¯ã¹ãCI/CDååž°ãã¬ãŒã ã¯ãŒã¯ã«çµ±åããããšã§ãã¡ã¢ãªå¹çããªãªãŒã¹æ€èšŒããã»ã¹ã®äžéšã«çµã¿èŸŒãããšãã§ãããã®å¯èŠæ§ã®ã®ã£ãããåããããšãã§ããŸããGCãéçšäžã®åŸä»ããšããŠæ±ãã®ã§ã¯ãªãããã®ã¢ãããŒãã¯GCã第äžçŽã®ããã©ãŒãã³ã¹ææšãšããŠäœçœ®ä»ããã¹ã«ãŒããããã¬ã€ãã³ã·ããšã©ãŒçãšäžŠãã§ç¶ç¶çã«åæããŸããGCç£èŠãèªååãã€ãã©ã€ã³ã«çµã¿èŸŒãããšã§ãããŒã ã¯å²ãåœãŠã®éå¹çæ§ãããŒãã®è¥å€§åãã³ã¬ã¯ã¿ãŒã®èšå®ãã¹ãšãã£ããæ¬æ¥ã§ããã°æ¬çªç°å¢ã®ãã«ããŒãæã«ããé¡åšåããªãå¯èœæ§ã®ããå åãæ©æã«æ€åºã§ããŸãã
åŸæ¥ã®CI/CDãã€ãã©ã€ã³ã¯ãäž»ã«æ©èœãã¹ããšãããã€ã¡ã³ãã®èªååã«éç¹ã眮ããŠããŸããããããè¿ä»£åãããã·ã¹ãã ããã€ã¯ããµãŒãã¹ã忣ã¯ãŒã¯ããŒãããããŠå¯å€ã¡ã¢ãªãããããªã³ããå«ãããã«ãªããšãå®è¡æã®åäœã¯ã³ãŒãã®æ£ç¢ºæ§ãšåæ§ã«éèŠã«ãªããŸããGCã¡ããªã¯ã¹ãçµ±åããããšã§ããã¹ãŠã®ãã«ãã«ãããŠããžãã¹ããžãã¯ã®æ£ç¢ºæ§ã ãã§ãªããå¶åŸ¡ãããã¹ãã¬ã¹äžã«ãããã¡ã¢ãªã®åäœãè©äŸ¡ã§ããããã«ãªããŸãããã®çµ±åã¯ã CI/CDãã€ãã©ã€ã³ã«ãããããã©ãŒãã³ã¹ååž°ãã¹ãã®æŠç¥çãã¬ãŒã ã¯ãŒã¯ç¶ç¶çãªæ€èšŒã«ãããããã©ãŒãã³ã¹ç£èŠã¯äºåŸå¯Ÿå¿çãªå¯Ÿçã§ã¯ãªããæ¥åžžçãªå質ã²ãŒããžãšå€åããŸãã
ããŒã¹ã©ã€ã³ã¡ã¢ãªãšã³ã¬ã¯ã·ã§ã³ããã©ãŒãã³ã¹ã¡ããªãã¯ã®ç¢ºç«
GCãååž°ãã¬ãŒã ã¯ãŒã¯ã«çµ±åããæåã®ã¹ãããã¯ãããŒã¹ã©ã€ã³ã®ããã©ãŒãã³ã¹ææšãå®çŸ©ããããšã§ãããããã®ããŒã¹ã©ã€ã³ã¯ãéåžžã®ã¯ãŒã¯ããŒãã«ãããäºæ³ãããã¡ã¢ãªæ¶è²»éãã³ã¬ã¯ã·ã§ã³é »åºŠãããã³äžæåæ¢æéã衚ããŸããäžåºŠç¢ºç«ããããšããããã¯åŸç¶ã®ãã«ããæž¬å®ããéã®åºæºç¹ãšããŠæ©èœããŸããéžè±ã¯ããã©ãŒãã³ã¹ã®åäžãŸãã¯äœäžã®ããããã瀺ããŠãããã©ã¡ãã調æ»ãå¿ èŠã§ãã
GatlingãJMeterãK6ãªã©ã®ããŒã«ã¯ãã€ã³ã¹ãã«ã¡ã³ãåãããã©ã³ã¿ã€ã ãGCãã¬ã¡ããªããã£ããã£ããªãããçŸå®çãªè² è·ç¶æ³ãã·ãã¥ã¬ãŒãã§ããŸãããããã®ããŒã¹ã©ã€ã³ãCI/CDã·ã¹ãã ã«ä¿åããããšã§ãèªååãããã¹ã¯ãªããã§çŸåšã®çµæãšå±¥æŽããŒã¿ãæ¯èŒã§ããŸããäžæåæ¢æéãŸãã¯å²ãåœãŠçã蚱容ãããå·®ç°ã®ãããå€ãè¶ ãããšããã€ãã©ã€ã³ã¯ãã«ããã¬ãã¥ãŒå¯Ÿè±¡ãšããŠãã©ã°ä»ãã§ããŸãããã®ææ³ã¯ãã§èª¬æããå±¥æŽè¿œè·¡ãã¬ãŒã ã¯ãŒã¯ã«äŒŒãŠããŸãã 远跡ããå¿ èŠããããœãããŠã§ã¢ããã©ãŒãã³ã¹ææšäžè²«ããããŒã¹ã©ã€ã³ã¯ãå€åãè©äŸ¡ããããã®æž¬å®å¯èœãªã³ã³ããã¹ããæäŸããŸããå®å®ããããã©ãŒãã³ã¹åºæºã確ç«ããããšã§ãè¿ä»£åã«ãã£ãŠæéã®çµéãšãšãã«ãµã€ã¬ã³ããªå£åãçããã®ãé²ãããšãã§ããŸãã
ãã«ããã€ãã©ã€ã³å ã§ã®GCåæã®èªåå
ããŒã¹ã©ã€ã³ãå®çŸ©ããåŸãèªååã«ãã£ãŠäžè²«æ§ãšåçŸæ§ã確ä¿ãããŸãããã«ããã€ãã©ã€ã³ã«ã¯ãã¡ã¢ãªå²ãåœãŠãšGCããã©ãŒãã³ã¹ã«è² è·ããããããã«èšèšãããçåœã¯ãŒã¯ããŒããå®è¡ããå°çšã¹ããŒãžãå«ããããšãã§ããŸããã¹ã¯ãªããã¯GCãã°ãŸãã¯ãã¬ã¡ããªãšã¯ã¹ããŒããèªåçã«è§£æããã³ã¬ã¯ã·ã§ã³æ°ãããŒãå æçãåèšåæ¢æéãªã©ã®ã¡ããªã¯ã¹ãæœåºããŸãã
JenkinsãGitLab CIãAzure DevOpsãªã©ã®ããŒã«ãšã®çµ±åã«ããããã®åæãæ©èœãã¹ããšäžŠè¡ããŠå®è¡ã§ããŸããèªååããããããå€ã«ãããGCããã©ãŒãã³ã¹åºæºã«åºã¥ããŠãã«ãã®åæ ŒãŸãã¯äžåæ Œãæ±ºå®ãããŸãããã®ããã»ã¹ã¯ã éçã³ãŒãåæã«ãã Jenkins ãã€ãã©ã€ã³ã®ã³ãŒãã¬ãã¥ãŒã®èªåååãååãã³ãŒãå質ããå®è¡æã®åäœãŸã§æ¡åŒµããŸããèªååã«ãããæåã«ããä»å ¥ãæå°éã«æããªãããGCããã©ãŒãã³ã¹ããªãªãŒã¹æºåã«ãããæž¬å®å¯èœãã€åŒ·å¶å¯èœãªåŽé¢ãšããŠç¶æãããããšãä¿èšŒããŸãã
GCãã¬ã³ãã®èŠèŠåãã¬ããŒãããã·ã¥ããŒãã«çµã¿èŸŒã
ååž°ãã¬ãŒã ã¯ãŒã¯ã¯ãããŒã¿ãåéããã ãã§ãªãããªãªãŒã¹éã®åŸåãå¯èŠåããå¿ èŠããããŸããGrafanaãELKãPrometheusããã·ã¥ããŒããªã©ã®å¯èŠåããŒã«ãçµ±åããããšã§ãé¢ä¿è ã¯ã¡ã¢ãªç®¡çãæéã®çµéãšãšãã«ã©ã®ããã«é²åããŠãããã芳å¯ã§ããŸãããªãªãŒã¹ããšã®GCäžæåæ¢æéãå²ãåœãŠã¹ã«ãŒããããã©ã€ãããŒãæ¯çã衚瀺ãããã¬ã³ãã°ã©ãã«ãããé·æçãªããã©ãŒãã³ã¹äœäžã®ãã¿ãŒã³ã容æã«æ€åºã§ããŸãã
ãã®èŠèŠçãªãã¬ãŒãµããªãã£ã«ãããéçºããŒã ã¯ã³ãŒãã®å€æŽãšã¡ã¢ãªãžã®åœ±é¿ãçžé¢ãããã©ã®æŽæ°ããªã°ã¬ãã·ã§ã³ãåŒãèµ·ãããããç¹å®ããããšãã§ããŸããèŠèŠåã«åºã¥ãæŽå¯ã¯ã ã³ãŒãã®èŠèŠå ã³ãŒããå³è¡šã«å€æããèŠèŠçãªæçæ§ã«ãã£ãŠæŠç¥çãªæææ±ºå®ãå éãããŸãããã€ãã©ã€ã³åºåã«èŠèŠçãªGCãã¬ã³ãã¬ããŒããå«ããããšã§ãéçºè ãšãªãªãŒã¹ãããŒãžã£ãŒã®äž¡æ¹ã«å³æã®ãã£ãŒãããã¯ãæäŸããã説æè²¬ä»»ã確ä¿ãããç¶ç¶çãªããã©ãŒãã³ã¹æ¹åãä¿é²ãããŸãã
GCããŒã¹ã®å質ã²ãŒãããããã€ã¡ã³ãã¬ããã³ã¹ã«çµ±åãã
GCçµ±åã®æçµæ®µéã¯ãGCããããã€ã¡ã³ãã¬ããã³ã¹ã«çµã¿èŸŒãããšã§ããCI/CDãã€ãã©ã€ã³å ã®å質ã²ãŒãã¯ããã«ããã¹ããŒãžã³ã°ãŸãã¯æ¬çªç°å¢ã«ããã¢ãŒãããåã«ãç¹å®ã®GCããã©ãŒãã³ã¹åºæºãé©çšã§ããŸããäŸãã°ãå¹³å忢æéãå®çŸ©ããããããå€ãè¶ ããå ŽåããããŒã䜿çšéãæ³å®ãããäžéãè¶ ããå Žåããã«ãã¯ãããã€ã¡ã³ãã«å€±æããå¯èœæ§ããããŸãã
ãããã®ã²ãŒãã¯èªååããããªã¹ã¯ãã§ãã¯ãšããŠæ©èœããäžå®å®ãªãªãªãŒã¹ããã€ãã©ã€ã³ãééããã®ãé²ããŸãããŸãã忣ãããã€ã¡ã³ãå šäœã®äžè²«æ§ã確ä¿ãããã«ãŒã°ãªãŒã³ãªãªãŒã¹ãã«ããªã¢ãªãªãŒã¹ãªã©ã®ç°å¢ã«ãããŠäºæž¬å¯èœãªããã©ãŒãã³ã¹ãç¶æããŸãããã®ã¬ããã³ã¹ã¢ãããŒãã¯ãã§æç€ºãããã¢ããã€ãŒãŒã·ã§ã³ç®¡çãã¬ãŒã ã¯ãŒã¯ãåæ ããŠããŸãã ã¬ã¬ã·ãŒã¢ããã€ãŒãŒã·ã§ã³ããŒãã¡ã€ã³ãã¬ãŒã ã«ãããã¬ããã³ã¹ç£èŠç£èŠã«ãã£ãŠéçšã®ä¿¡é Œæ§ã確ä¿ãããŸããGCã¡ããªã¯ã¹ãã¬ããã³ã¹ã«çµ±åããããšã§ãããã©ãŒãã³ã¹ã¯äºåŸå¯Ÿå¿çãªãµããŒã掻åããäœç³»åãããéçºæšæºãžãšå€é©ãããã¢ããã€ãŒãŒã·ã§ã³ã®åãçµã¿ãšæž¬å®å¯èœãªããžãã¹ã¢ã·ã¥ã¢ã©ã³ã¹ã飿ºãããŸãã
AIããŒã¹ã®ç°åžžæ€åºãGCãã¬ã¡ããªããŒã¿ã«é©çšãã
ãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã忣ãã©ãããã©ãŒã ã«æ¡åŒµãããã«ã€ããŠãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒããã»ã¹ããåéããããã¬ã¡ããªããŒã¿ã®éã¯ææ°é¢æ°çã«å¢å ããŸãããã®ããŒã¿ãæåã§åæããããšã¯ãããã«äžå¯èœã«ãªããŸããAIããŒã¹ã®ç°åžžæ€åºã¯ãé©å¿åã®ã€ã³ããªãžã§ã³ã¹ã¬ã€ã€ãŒãå°å ¥ããç°åžžãªã¡ã¢ãªåäœãèªåçã«èå¥ããããã©ãŒãã³ã¹ã€ã³ã·ãã³ãã«çºå±ããåã«ãªã¹ã¯ããã€ã©ã€ãããŸãããããã®ã¢ã«ãŽãªãºã ã¯ãããŒã¹ã©ã€ã³GCãã¿ãŒã³ãåŠç¿ãã埮åŠãªéžè±ãèªèããããšã§ãå°æ¥ã®äžå®å®æ§ãã¡ã¢ãªãªãŒã¯ããŸãã¯ã³ã¬ã¯ã¿ãŒã®éå¹ççãªãã¥ãŒãã³ã°ãäºæž¬ã§ããŸããAIäž»å°ã®åæãGCã®å¯èŠ³æž¬æ§ãã¬ãŒã ã¯ãŒã¯ã«çµ±åããããšã§ãç£èŠã¯èª¬æçãªã¬ããŒãããäºæž¬çãªããã©ãŒãã³ã¹ä¿èšŒãžãšå€åããŸãã
AIã«ããç°åžžæ€ç¥ã¯ãåçãªã¯ãŒã¯ããŒãã«ãã£ãŠGCã®æåãå€åããç°å¢ã§åªãã广ãçºæ®ããŸããæ©æ¢°åŠç¿ã¢ãã«ã¯ãéçãªéŸå€ã«é Œãã®ã§ã¯ãªããéå»ã®ãã¬ã¡ããªããŒã¿ãçšããŠãæ§ã ãªç¶æ³äžã§ã®ãæ£åžžãªãã³ã¬ã¯ã¿ãŒã¢ã¯ãã£ããã£ã倿ããŸãããããã®ã¢ãã«ã¯ãå²ãåœãŠã¹ã«ãŒããããäžæåæ¢æéãããŒã䜿çšçãææ Œçãšãã£ãææšãè©äŸ¡ããåŸæ¥ã®ç£èŠã·ã¹ãã ã§ã¯æ€åºã§ããªãé¢ä¿æ§ãæ€åºããŸãããã®æŠå¿µã¯ãåè¿°ã®äºæž¬å¶åŸ¡ææ³ãšé¡äŒŒããŠããŸãã ããŒã¿ã¡ãã·ã¥ã®ååãã¬ã¬ã·ãŒã¢ããã€ãŒãŒã·ã§ã³ã¢ãŒããã¯ãã£ã«é©çšãã忣ã€ã³ããªãžã§ã³ã¹ã«ãã£ãŠããã¢ã¯ãã£ããªç®¡çãå¯èœã«ãªããŸããåæ§ã®ææ³ãGCããŒã¿ã«é©çšããããšã§ãäŒæ¥ã¯äºæž¬äžå¯èœãªè² è·ãã¿ãŒã³äžã§ãã¡ã¢ãªããã©ãŒãã³ã¹ãèªåçã«å®å®åã§ããããã«ãªããŸãã
éå»ã®GCãã¬ã¡ããªãããã¬ãŒãã³ã°ããŒã¿ã»ãããæ§ç¯ãã
AIããŒã¹ã®æ€ç¥ã®åºç€ã¯ãé«åè³ªãªæç³»åãã¬ãŒãã³ã°ããŒã¿ã§ããéå»ã®GCãã¬ã¡ããªã¯ãã¢ãã«ãæ£åžžãªåäœãã¿ãŒã³ãåŠç¿ããããã®çã®ããŒã¿ã»ãããšããŠæ©èœããŸããããŒã¿ãœãŒã¹ã«ã¯éåžžãGCãã°ãããŒã䜿çšçã¬ããŒããAPMããŒã«ããªãã¶ãŒãããªãã£ãã©ãããã©ãŒã ããéçŽãããã³ã¬ã¯ã¿ãŒã€ãã³ãã¹ããªãŒã ãå«ãŸããŸãã
ååŠçã«ãããããŒã¿åœ¢åŒéã®äžè²«æ§ã確ä¿ãããã¿ã€ã ã¹ã¿ã³ããæ£èŠåãããç¡é¢ä¿ãªææšããã£ã«ã¿ãªã³ã°ãããŸããã¢ãã«ãæ§é åããããšãå€éã®ãããåŠçãææ«ã®ã¬ããŒãè² è·ãšãã£ãå£ç¯å€åãåæãã誀æ€ç¥ãåé¿ã§ããããã«ãªããŸããæéã®çµéãšãšãã«ãã¢ãã«ã¯èš±å®¹å¯èœãªGCããã©ãŒãã³ã¹ãšã³ãããŒãã®çè§£ãæ·±ããŠãããŸãããã®ããŒã¿ãã¥ã¬ãŒã·ã§ã³ã¢ãããŒãã¯ã å®è¡æåæã«ãããåäœã®å¯èŠåãè¿ä»£åãå éããæ¹æ³ãè§£æè³ªã®é«ãããŒã¿ã«ãã£ãŠä¿¡é Œæ§ã®é«ãè§£éãå¯èœã«ãªããŸããå æ¬çãã€æèçãªããŒã¿ã»ãããæ§ç¯ããããšã§ãç°åžžæ€åºã¢ãã«ã¯åã¢ããªã±ãŒã·ã§ã³ã®éçšãªãºã ã«èªç¶ã«é©å¿ã§ããããã«ãªããŸãã
ã¡ã¢ãªãªãŒã¯ãšæœåšçãªå²ãåœãŠã®éå¹çæ§ã®æ€åº
äžåºŠåŠç¿ãããç°åžžæ€åºã¢ãã«ã¯ãåä¿¡ããGCãã¬ã¡ããªãç¶ç¶çã«åæããåŠç¿ããããŒã¹ã©ã€ã³ããã®éžè±ããã©ã°ä»ãããŸããæã貎éãªææã®äžã€ã¯ãã¡ã¢ãªãªãŒã¯ãéå¹ççãªå²ãåœãŠãã¿ãŒã³ã®æ©ææ€åºã§ãããããã®åé¡ã¯ããããå€ããŒã¹ã®ã·ã¹ãã ã§ã¯åŸã ã«é²è¡ããGCã®é·æé忢ãã¡ã¢ãªäžè¶³ãšã©ãŒãåŒãèµ·ãããŸã§æ°ã¥ãããªãããšããããããŸãã
AIã¢ãã«ã¯ãGCåŸã®ããŒãå æçã®å°ãããªãããäžè²«ããå¢å ããã³ã¬ã¯ã·ã§ã³éã®äžèŠåãªææ Œçãªã©ãã¡ã¢ãªãé©åã«ååãããŠããªãå åãèå¥ã§ããŸãããŸããç¹å®ã®ã¯ãŒã¯ããŒãã«é¢é£ããåšæçãªå²ãåœãŠã®æ¥å¢ãæ€åºã§ããéå¹ççãªãªããžã§ã¯ãäœæãã¿ãŒã³ã瀺åããŸãããã®äºæž¬æ©èœã¯ã ã¢ããªã±ãŒã·ã§ã³ã®ã¬ã€ãã³ã·ã«åœ±é¿ãäžããé ããã³ãŒããã¹ãæ€åºããããã¢ã¯ãã£ããªæ€åºã«ãããå®è¡æã®äžå®å®æ§ãé²ããŸããããããç°åžžãæ©æã«æ€åºããããšã§ãããŒã ã¯ã³ãŒãã®æé©åãèšå®ã®èª¿æŽãéããŠãæ¬çªç°å¢ã®ã€ã³ã·ãã³ãã«ãšã¹ã«ã¬ãŒãããåã«æ ¹æ¬çãªåé¡ã«å¯ŸåŠããããšãã§ããŸãã
ããžãã¹ãžã®åœ±é¿ãšéçšãªã¹ã¯ã«åºã¥ããŠç°åžžãåªå é äœä»ããã
è€éãªãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§ã¯ããã¹ãŠã®ç°åžžãåçã®éèŠæ§ãæã€ããã§ã¯ãããŸãããäžæçãªå€åã瀺ããã®ãããã°ãé倧ãªå£åã瀺åãããã®ããããŸããAIããŒã¹ã®åæã§ã¯ãGCãã¬ã¡ããªãšå¿çæéãã¹ã«ãŒãããããµãŒãã¹äŸåé¢ä¿ã°ã©ããªã©ã®ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ã¡ããªã¯ã¹ãçžé¢ãããããšã§ãæœåšçãªããžãã¹ãžã®åœ±é¿ã«å¿ããŠç°åžžãåé¡ã§ããŸãã
äŸãã°ãããŒã¯æã®ãã©ã³ã¶ã¯ã·ã§ã³ãŠã£ã³ããŠã«ãããGC忢æéã®æ¥å¢ã¯ãããã¯ã°ã©ãŠã³ããµãŒãã¹ã§çºçãããã®ãããã¯ããã«éçšäžã®éèŠæ§ãæã¡ãŸããAIã«ããåªå é äœä»ãã«ããããšã³ãžãã¢ãªã³ã°ããŒã ã¯ãšã³ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ããµãŒãã¹ã¬ãã«ã¢ã°ãªãŒã¡ã³ãïŒSLAïŒã«åœ±é¿ãäžããå¯èœæ§ãæãé«ãç°åžžã«éäžã§ããŸãããã®ããªã¢ãŒãžããã»ã¹ã¯ã ã¬ã¬ã·ãŒã¢ããã€ãŒãŒã·ã§ã³ããŒãã¡ã€ã³ãã¬ãŒã ã«ãããã¬ããã³ã¹ç£èŠãªãœãŒã¹ã®å²ãåœãŠã¯ãããžãã¹ã¯ãªãã£ã«ã«ãªåªå äºé ãšæŽåããŠããŸãã圱é¿åºŠã«åºã¥ããŠç°åžžãåªå é äœä»ãããããšã§ãAIã«ããæ€åºã¯åãªãæè¡çãªã¡ã«ããºã ãããéçšãªãŒããŒã·ããã®ããã®æŠç¥çãªæææ±ºå®æ¯æŽããŒã«ãžãšé²åããŸãã
AIé§ååã¢ã©ãŒããéçšã¯ãŒã¯ãããŒã«çµ±å
ç°åžžæ€ç¥ã¯ããã®ç¥èŠãèªååã«ãã£ãŠéçšåãããæã«æå€§ã®äŸ¡å€ãçºæ®ããŸããAIé§ååã¢ã©ãŒãããªãã¶ãŒãããªãã£ã»ãã©ãããã©ãŒã ãã€ã³ã·ãã³ã管çã·ã¹ãã ã«çµ±åããããšã§ãç¹å®ããããªã¹ã¯ãå³åº§ã«èª¿æ»ãæ¯æ£æªçœ®ãè¬ããããããã«ãªããŸããäŸãã°ãã¢ã©ãŒãã«ãã£ãŠèªåçã«ãªãœãŒã¹ãã¹ã±ãŒãªã³ã°ããããGCãã©ã¡ãŒã¿ã倿ŽãããããŠãŒã¶ãŒãããã©ãŒãã³ã¹ã®äœäžãçµéšããåã«é害ã®ããããŒããéé¢ãããããããšãå¯èœã«ãªããŸãã
ãã®çµ±åã«ãããæ€åºã蚺æã修埩ãã·ãŒã ã¬ã¹ã«è¡ãããéãããã£ãŒãããã¯ã«ãŒãã圢æãããŸããããã¯ã éçã³ãŒãåæã«ãã Jenkins ãã€ãã©ã€ã³ã®ã³ãŒãã¬ãã¥ãŒã®èªååç¶ç¶çãªãã£ãŒãããã¯ãå¹çæ§ãé«ããç°å¢ã§ããæ¬çªç°å¢ã§ã¯ãAIããŒã¹ã®GCç£èŠãã€ã³ããªãžã§ã³ããªç£èŠåœ¹ãšãªããã¡ã¢ãªã«é¢ãã課é¡ããªã¢ã«ã¿ã€ã ã§ç¶ç¶çã«åŠç¿ãäºæž¬ã察å¿ããŸãããã®çµæãã¡ã¢ãªç®¡çãåçã«é²åãã忣ã·ã¹ãã å šäœã®å®å®æ§ãã¹ã±ãŒã©ããªãã£ãä¿¡é Œæ§ãç¶æãããèªå·±ä¿®æ£åã®ããã©ãŒãã³ã¹ã»ãšã³ã·ã¹ãã ãå®çŸããŸãã
Smart TS XLãšã¯ãã¹ã¢ããªã±ãŒã·ã§ã³ã¡ã¢ãªäŸåã€ã³ããªãžã§ã³ã¹
çŸä»£ã®ãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã«ãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã®è€éãªåäœã¯ãã¢ããªã±ãŒã·ã§ã³ãå¢çãè¶ããŠã¡ã¢ãªãã©ã®ããã«å ±æããä¿æããŠããããå¯èŠåããªããã°ãå®å šã«çè§£ããããšã¯ã§ããŸãããå€§èŠæš¡ãªçµç¹ã§ã¯ããã©ã³ã¶ã¯ã·ã§ã³ããµãŒãã¹ããã¬ãŒã ã¯ãŒã¯ãã¬ã¬ã·ãŒã³ã³ããŒãã³ãã®è€æ°ã®ã¬ã€ã€ãŒãééããããšãå€ããåŸæ¥ã®GCãã°ã§ã¯èª¬æã§ããªãçžäºäŸåçãªã¡ã¢ãªãã¹ãçããŸããSmart TS XLã¯ãã³ãŒãã¬ãã«ã®äŸåé¢ä¿ãå®è¡æã®ã¡ã¢ãªå²ãåœãŠãšåå©çšã«ã©ã®ããã«åœ±é¿ããããã¢ããªã±ãŒã·ã§ã³éã§å¯èŠåããããšã§ããã®èª²é¡ã«å¯ŸåŠããŸããSmart TS XLã¯ã詳现ãªéçåæãšåœ±é¿åæãéããŠãGCããã©ãŒãã³ã¹ãç·åçã«æ±ºå®ãããªããžã§ã¯ãã®æå¹æéãããŒã¿æ§é ãã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹éã®é¢ä¿ãæããã«ããŸãã
å®è¡æã®æåãäºåŸçã«ææããæšæºçãªç£èŠããŒã«ãšã¯ç°ãªããSmart TS XLã¯äºåã®æŽå¯ãå¯èœã«ããŸãã忣ã³ã³ããŒãã³ãéã®ã°ããŒãã«åç §ãå ±æç¶æ ã®çžäºäœçšã埪ç°äŸåé¢ä¿ããããã³ã°ããããšã§ãæœåšçãªGCããã«ããã¯ãæ¬çªç°å¢ã§é¡åšåããåã«ç¹å®ããŸãããã®å°æ¥ãèŠæ®ããå¯èŠæ§ã¯ãã¬ã¬ã·ãŒç°å¢ãšã¯ã©ãŠããã€ãã£ãç°å¢ã®äž¡æ¹ã®ã¢ããã€ãŒãŒã·ã§ã³ããµããŒãããŸãããã®æ©èœã¯ãåè¿°ã®æ§é åãããäŸåé¢ä¿èªèæ©èœãšé¡äŒŒããŠããŸãã ãªã¹ã¯åæããå°å ¥ã®ä¿¡é Œæ§ãŸã§ãææ°ã·ã¹ãã ã®çžäºåç §ã¬ããŒãå¯èŠæ§ã«ãã£ãŠè€éããå®çšçãªå¶åŸ¡ãžãšå€æãããŸããSmart TS XLã¯ãã³ãŒãã€ã³ããªãžã§ã³ã¹ãšã©ã³ã¿ã€ã ã®å¯èŠ³æž¬æ§ã®éã®æ©æž¡ããšãªã蚺æããŒã«ãšæŠç¥ããŒã«ã®äž¡æ¹ãšããŠæ©èœããŸãã
ã¬ã¬ã·ãŒã³ãŒãããŒã¹ãšææ°ã³ãŒãããŒã¹éã®ã¡ã¢ãªäŸåé¢ä¿ãèŠèŠåãã
Smart TS XLã®æ±ºå®çãªæ©èœã®äžã€ã¯ããã¯ãããžãŒã®äžä»£ããŸããäŸåé¢ä¿ãå¯èŠåããæ©èœã§ããå€ãã®äŒæ¥ã¯ãCOBOLã¢ãžã¥ãŒã«ãšJavaãŸãã¯.NETãµãŒãã¹ã飿ºãããã€ããªããã¹ã¿ãã¯ãéçšããŠããŸãããããã飿ºã«ãããã¡ã¢ãªä¿æãçºçããå Žæãåããã«ãããªãäžéæãªããŒã¿åŠçå±€ãäœæãããããšããããããŸããSmart TS XLã¯ãããã®ã€ã³ã¿ãŒãã§ãŒã¹ãè§£æããããŒã¿ãããŒããããã³ã°ããŠãéçãŸãã¯æ°žç¶çãªåç §ãæå³ãããããé·ãä¿æãããŠããå Žæããã€ã©ã€ã衚瀺ããŸãã
ãããã®äŸåé¢ä¿ãå¯èŠåããããšã§ãã¢ãŒããã¯ãã¯ãã¬ã¬ã·ãŒããŒã¿ãããŒãçŸä»£ã®ã©ã³ã¿ã€ã ã«ãããGCã¹ãã¬ã¹ã«ã©ã®ããã«å¯äžããŠããããæ£ç¢ºã«ç¹å®ã§ããŸãããã®å¯èŠåã«ãããéå°ãªããããžã§ãã³ã°ãäžèŠãªãã¥ãŒãã³ã°ã«ã€ãªãã誀ã£ãåæãé²ãããšãã§ããŸãããã®å¯èŠåæè¡ã¯ã ãã©ãŠã¶ããŒã¹ã®æ€çŽ¢ãšåœ±é¿åæã®æ§ç¯ã°ã©ãããŒã¹ã®è¡šçŸãæäœæ¥ã«ãããã¬ãŒã¹äœæ¥ã«åã£ãŠä»£ãããŸããSmart TS XLã䜿çšãããšããµã€ãåãããã·ã¹ãã éã§ãããŸã§èŠããªãã£ããã®ãéæåãããã¡ã¢ãªã®éå¹çæ§ã®æ£ç¢ºãªåå ãã¿ãŒã²ãããšããæé©åæŠç¥ãå¯èœã«ãªããŸãã
ã€ã³ãã¯ãåæãšã©ã³ã¿ã€ã ãã¬ã¡ããªããªã³ã¯ããŠç·åçãªæŽå¯ãåŸã
åŸæ¥ã®å¯èŠ³æž¬æ§ã·ã¹ãã ã¯ã¡ã¢ãªã®æåã瀺ãã®ã«å¯ŸããSmart TS XLã¯ã¡ã¢ãªããã®æåã瀺ãçç±ã説æããŸããããã¯ãéç圱é¿åæãšã©ã³ã¿ã€ã ãã¬ã¡ããªã飿ºãããå²ãåœãŠå ãšGCã®çµæãçžé¢ãããããšã§å®çŸããŸããPrometheusãOpenTelemetryãªã©ã®ç£èŠããŒã«ãšçµ±åããããšã§ãSmart TS XLã¯ãœãŒã¹ã³ãŒãå ã§æ€åºããããªããžã§ã¯ãäœæãã¿ãŒã³ãã©ã€ãããŒãã¢ã¯ãã£ããã£ã«ãããã³ã°ããŸãã
ãã®äºéã®èŠç¹ã«ãããããŒã ã¯ã¡ã¢ãªã¹ãã¬ã¹ã®åå ãéå¹çãªã³ãŒãæ§é ãäžé©åãªã³ã¬ã¯ã¿ãŒã®èšå®ããããã¯ã¯ãŒã¯ããŒãã®ç°åžžã®ãããã«ãããã®ããåãåããããšãã§ããŸãããã®ãã€ããªããåæã¢ãããŒãã¯ã ããŒã¿ãšå¶åŸ¡ãããŒã®åæãããã¹ããŒããªéçã³ãŒãåæãå®çŸããæ¹æ³éçã€ã³ããªãžã§ã³ã¹ãšåçã€ã³ããªãžã§ã³ã¹ãçµ±åããããšã§ãSmart TS XL ã¯ãã¬ã¡ããªãã³ã³ããã¹ãèªèåã®æŽå¯ã·ã¹ãã ã«å€æãã修埩ãšã¢ãŒããã¯ãã£ã®æ¹åãä¿é²ããŸãã
ãµãŒãã¹éã®ã¡ã¢ãªä¿æãšåç §äŒæã®æ€åº
忣ç°å¢ã§ã¯ããµãŒãã¹åŒã³åºãéã§ä¿æãããã¡ã¢ãªã«ãã£ãŠGCã®ããã©ãŒãã³ã¹ãäœäžããããšããããããŸããSmart TS XLã¯ãããŒã¿ã®ã·ãªã¢ã«åããã·ãªã¢ã«åããã£ãã·ã¥ã®äŒæãåæããããšã§ããããããµãŒãã¹éã®ã¡ã¢ãªä¿æãã¿ãŒã³ãæ€åºããŸãããŸããäžå¿ èŠã«ãµãŒãã¹å¢çãè¶ããŠãããªããžã§ã¯ãããæ©èœå¯¿åœãè¶ ããŠãã£ãã·ã¥å ã«ä¿æãããŠãããªããžã§ã¯ããç¹å®ããŸãã
ãã®å¯èŠæ§ã¯ãç¹ã«ã¢ããªã·ãã¯ã·ã¹ãã ããã€ã¯ããµãŒãã¹ã«ç§»è¡ããã¢ããã€ãŒãŒã·ã§ã³ã«ãããŠéåžžã«éèŠã§ããSmart TS XLã¯ãå ±æåç §ãæå³ãããå¢çã«éåããŠããç®æãç¹å®ããéçºè ãéä¿¡å¥çŽãåèšèšããŠåé¢ã匷å¶ã§ããããã«ããŸãããã®æ©èœã¯ã åŸæ¥ã®åæ£ã·ã¹ãã ãšã¯ã©ãŠãã·ã¹ãã å šäœã§ã®ããã°ã©ã ã®äœ¿çšç¶æ³ãæããã«ããã¯ããªãã¡ã¯ã¿ãªã³ã°åã«çžäºäœçšãã€ã³ããçè§£ããããšãéèŠããŠããŸãããã®æ·±ãã§åç §äŒæãæ€åºããããšã§ãããåºç¯ãªæäœãäžå®å®ã«ããããšãªããæ£ç¢ºãªä¿®æ£ãå¯èœã«ãªããŸãã
èªååãããæŽå¯çæã«ããç¶ç¶çãªæé©åã®ãµããŒã
Smart TS XLã¯ãéç蚺æã«ãšã©ãŸãããç¶ç¶çãªæé©åããµããŒãããŸããç¶ç¶çåæãšã³ãžã³ã¯ãã³ãŒãã倿Žããããã³ã«ã¡ã¢ãªäŸåé¢ä¿ãåè©äŸ¡ããåç §ããããšåœ±é¿é¢ä¿ãèªåçã«æŽæ°ããŸããCI/CDã¯ãŒã¯ãããŒã«çµ±åãããŠãããããæ°ãããªãªãŒã¹ã§ããã¢ããã€ãŒãŒã·ã§ã³æã«ç¢ºç«ãããå¹çåºæºãç¶æã§ããŸãã
èªååãããã€ã³ãµã€ãçæã«ãããããŒã ãé²åãã·ã¹ãã ãæ¡åŒµããŠããããã©ãŒãã³ã¹ã¬ããã³ã¹ã®äžè²«æ§ã確ä¿ãããŸãããã®ç¶ç¶çãªæ€èšŒã®ååã¯ã ã¡ã€ã³ãã¬ãŒã ã®ãªãã¡ã¯ã¿ãªã³ã°ãšã·ã¹ãã ã®è¿ä»£åã®ããã®ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³æŠç¥èªååãšåæã€ã³ããªãžã§ã³ã¹ãçµã¿åãããããšã§ãSmart TS XL ã¯èšºæãã©ãããã©ãŒã ãããããã©ãŒãã³ã¹ã®å®å®æ§ãç¶æããã€ã³ããªãžã§ã³ã㪠GC ãã¥ãŒãã³ã°ãå¯èœã«ãããœãããŠã§ã¢è³ç£å šäœã®ã¡ã¢ãªæŽåæ§ãç¶æããéçšããŒãããŒãžãšé²åããŸãã
ã¡ã¢ãªç®¡çãäºæž¬çãªå®å®æ§ã«å€ãã
äŒæ¥ã®ã¢ããã€ãŒãŒã·ã§ã³ãé²åããäžã§ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒGCïŒã¯åãªãããã¯ã°ã©ãŠã³ãã¡ã«ããºã ã§ã¯ãªããã·ã¹ãã ã®å¥å šæ§ã瀺ãäž»èŠãªææšãšãªã£ãŠããŸãããã€ãŠã¯ååçãªã©ã³ã¿ã€ã ããã»ã¹ãšããŠæ©èœããŠããGCã¯ãä»ã§ã¯ã¢ããªã±ãŒã·ã§ã³ã®å¹çæ§ãã¢ãŒããã¯ãã£ã®å質ããããŠã¹ã±ãŒã©ããªãã£ãžã®å¯Ÿå¿ç¶æ³ã«é¢ãããæž¬å®å¯èœã§åæå¯èœãªæ å ±æºãšãªã£ãŠããŸããæ¬çªç°å¢ã§ã®GCç£èŠã埮調æŽããããšã§ããã€ãŠã¯éçšäžã®åŸä»ãã ã£ããã®ããäºæž¬çãªããã©ãŒãã³ã¹å¶åŸ¡ã®ææ³ãžãšå€è²ãéããŸããå¯èŠ³æž¬æ§ãéçåæããããŠåœ±é¿ã€ã³ããªãžã§ã³ã¹ãšçµ±åããããšã§ãGCããŒã¿ã¯ç¶ç¶çãªãã£ãŒãããã¯ã«ãŒããšãªããã³ãŒãã¬ãã«ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã¬ãã«ã®äž¡æ¹ã§ã¢ããã€ãŒãŒã·ã§ã³ã®æææ±ºå®ãå°ããŸãã
GCã¢ã¯ãã£ããã£ãã¹ã«ãŒããããã¬ã€ãã³ã·ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšçžé¢ãããèœåã¯ãããã©ãŒãã³ã¹ç®¡çãäºåŸå¯Ÿå¿åããäºé²åãžãšè»¢æããŸãããã¬ã¡ããªãšã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯ã³ã¬ã¯ã¿ãŒã®æåããªã¢ã«ã¿ã€ã ã§ææ¡ããé©å¿åãã¥ãŒãã³ã°ã¯å€åããã¯ãŒã¯ããŒãã«åãããŠã·ã¹ãã ãåçã«é²åãããŸããAIé§ååç°åžžæ€ç¥ã¯ãã®å¯èŠæ§ãããã«æ¡åŒµããã€ã³ã·ãã³ãã«ãªããã£ãšåã«éå¹çæ§ã«é¢ããäºæž¬çãªæŽå¯ãæäŸããŸãããããã®ãã©ã¯ãã£ã¹ã¯ãåè¿°ã®ãšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®ç²ŸåºŠãåæ ããŠããŸãã CI/CDãã€ãã©ã€ã³ã«ãããããã©ãŒãã³ã¹ååž°ãã¹ãã®æŠç¥çãã¬ãŒã ã¯ãŒã¯ç¶ç¶çãªæ€èšŒãæç¶å¯èœãªè¿ä»£åã®åºç€ãšãªããŸãã
ã¢ããªã±ãŒã·ã§ã³éã€ã³ããªãžã§ã³ã¹ãçµã¿èŸŒãããšã§ãå šäœåã宿ããŸããSmart TS XLã®ãããªããŒã«ã¯ãã¬ã¬ã·ãŒã³ã³ããŒãã³ããšææ°ã³ã³ããŒãã³ããã©ã®ããã«ã¡ã¢ãªãå ±æããäŸåé¢ä¿ãäŒæããããåæããããšã§ãå®è¡æã®åäœãçè§£ããããšã®æå³ãåå®çŸ©ããŸããéçåç §ãã·ã¹ãã éçžäºäœçšããªããžã§ã¯ãä¿æãã¿ãŒã³ããããã³ã°ããæ©èœã«ãããæšæž¬ã§ã¯ãªãäºå®ã«åºã¥ããåæã«åºã¥ããã¢ãŒããã¯ãã£æé©åãå¯èœã«ãªããŸããã³ã³ãã©ã€ã¢ã³ã¹ãšã¢ããã€ãŒãŒã·ã§ã³ã«ããåæ§ã®åæã®å³å¯ããé©çšãããŸãã éçããã³åœ±é¿åæãSOXããã³DORAã³ã³ãã©ã€ã¢ã³ã¹ã匷åããæ¹æ³ã¯ãã©ã³ã¿ã€ã ããã©ãŒãã³ã¹ã®ä¿èšŒã«ãåæ§ã«é©çšãããŸãã
ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã芳枬å¯èœã枬å®å¯èœããããŠã€ã³ããªãžã§ã³ãã«ãªãã°ããªã¹ã¯ã®æºã§ã¯ãªããå èŠã®æãåŸãæºãšãªããŸããç¶ç¶çãªåæãšåœ±é¿ãããã³ã°ã«ãã£ãŠãµããŒããããããã现ãããªGCç£èŠã«ãããäŒæ¥ã¯äžå®å®æ§ãäºæž¬ãããªãœãŒã¹ãæ£ç¢ºã«å²ãåœãŠãã¢ããã€ãŒãŒã·ã§ã³ãµã€ã¯ã«å šäœã«ããã£ãŠããã©ãŒãã³ã¹ãç¶æã§ããããã«ãªããŸãã芳枬æ§ãèªååããããŠSmart TS XLã«åºã¥ãã€ã³ãµã€ãã®çµã¿åããã«ãããçµç¹ã¯ã¡ã¢ãªç®¡çãã仿¥ã®ãã€ããªããã¯ãŒã¯ããŒããšå°æ¥ã®ã€ã³ããªãžã§ã³ãã§èªå·±æé©åãããã·ã¹ãã ã®äž¡æ¹ããµããŒãã§ãããããžã¿ã«ã¬ãžãªãšã³ã¹ã®ã¢ã¯ãã£ããªåºç€ãžãšå€é©ããŸãã