çŸä»£ã®ãšã³ã¿ãŒãã©ã€ãºJVMã¢ããªã±ãŒã·ã§ã³ã¯ãJITããªããã£ãã€ãŒãŒã·ã§ã³ã«ã¹ã±ãŒãã«ãã£ãŠåŒãèµ·ããããäºæž¬äžå¯èœãªããã©ãŒãã³ã¹åé¡ã«é »ç¹ã«ééããŸãããããã®ã«ã¹ã±ãŒãã¯ãã³ã³ãã€ã«æã«æ§ç¯ãããææ©çãªä»®å®ããäŸåããå®è¡ãã¹éã§ç¡å¹åããããšãã«çºçããŸããå€§èŠæš¡ã·ã¹ãã ã«å åšããæ§é çãªè€éãã¯ã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠã³ã³ããŒãã³ãéã®åäœãçè§£ããããã«è©³çްãªå¯èŠæ§ãæ±ãããããåæ§ã®èšºæããŒãºã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãããã¯ã埮åŠãªã€ãªãããå®è¡æã®çžäºäœçšãã©ã®ããã«åœ¢äœããã瀺ããŠããŸãã
éæé©åã«ã¹ã±ãŒãã¯ããããéå§ããã³ã³ããŒãã³ãã«éå®ãããããšã¯çšã§ããå ±æã€ã³ã¿ãŒãã§ãŒã¹ãå岿¡ä»¶ããŸãã¯åºã䜿çšãããŠããã¯ã©ã¹ã®å°ããªå€åã¯ãç¹ã«å€§èŠæš¡ãªã€ã³ã©ã€ã³å±éã«ãã£ãŠãããã®äŸåé¢ä¿ãæ¡å€§ããå Žåã«ãè€æ°ã®ã¢ãžã¥ãŒã«ã«ãŸãããææ©çãªãã¹ãç¡å¹ã«ããå¯èœæ§ããããŸãããã®åäœã¯ã å¶åŸ¡ãããŒã®æŽå¯å®è¡ãã¹ã絡ã¿åãããšã§äºæž¬äžå¯èœæ§ã¯å¢å€§ããŸããã¢ãžã¥ãŒã«ããµãŒãã¹éã§ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãæ¡å€§ããã«ã€ããŠãé£éçãªåœ±é¿ã¯ããé¡èã«ãªããåè¿°ã®æ§é çãªæžå¿µãåæ ããŸãã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³.
JVMã®å®å®æ§ã匷å
Smart TS XL ã¯ãå€§èŠæš¡ã·ã¹ãã å šäœã§ JVM ã®æé©åè§£é€ãéãã«ããªã¬ãŒããæ§é çãªäŸåé¢ä¿ãæããã«ããŸãã
ä»ããæ¢çŽ¢ããGraalVMãOpenJ9ãªã©ã®é©å¿åã©ã³ã¿ã€ã ãã©ãããã©ãŒã ã¯ãã³ã³ãã€ã«å±€ãã€ã³ã©ã€ã³å±éæŠç¥ã®éžæã«ãããã¡ã€ãªã³ã°ã®ãã£ãŒãããã¯ãå©çšããããããããã圱é¿ãå¢å€§ãããŸããã¬ã¬ã·ãŒãã¿ãŒã³ã«ãã£ãŠäžè²«æ§ã®ãªãåäœãçãããšããããã¡ã€ãªã³ã°ããŒã¿ã¯äžå®å®ã«ãªããåã³ã³ãã€ã«ãç¹°ãè¿ãå¿ èŠãçããŸãããããããã€ããã¯ã¹ã¯ã éæšå¥šã³ãŒãã®ãªã¹ã¯ç¶æ¿ãããæ§é ãäžå®å®ãªå®è¡æçµæãçã¿åºããåæ§ã®ã¢ãŒããã¯ãã£ãªã¹ã¯ã¯ã è¿ä»£åããŒã«ã®æŠèŠããã¯ãããã©ãŒãã³ã¹ ãã¥ãŒãã³ã°æã®æ§é ã®æç¢ºãã®éèŠæ§ã匷調ããŠããŸãã
ãããã®åé¡ã«å¯ŸåŠããã«ã¯ãã³ã³ãã€ã©ã®åå¥èª¿æŽã ãã§ã¯äžååã§ããéæé©åã«ã¹ã±ãŒãã¯ãéåžžãåŒã³åºãã°ã©ãã®åœ¢ç¶ãçµåãã¿ãŒã³ãããŒã¿ãããŒã®çžäºäœçšãªã©ãã¢ããªã±ãŒã·ã§ã³å ã®æ·±ãæ§é çé¢ä¿ã«èµ·å ããŸãããããã®é¢ä¿ãå¯èŠåã§ããªããã°ããã¥ãŒãã³ã°äœæ¥ã¯è¡šé¢çãªçç¶ã«å¯ŸåŠããã ãã§ãæ ¹æ¬çãªäžå®å®æ§ã¯æ®ããŸãã广çãªè§£æ±ºçã¯ãéçè§£æãã©ã³ã¿ã€ã ãã¬ã¡ããªããããŠæ§é åãããä¿®åŸ©ææ³ãçµã¿åããããã®ã§ãã 鲿ãããŒã®å®è·µãã®çµã¿åãããã¢ãããŒãã«ãããããã ãã¹ãå®å®ããããªã¢ãŒãã£ãã¯ãªäžå®å®æ§ãäœæžããå€§èŠæš¡ãª JVM å±éå šäœã§ JIT ã®äºæž¬å¯èœæ§ãåäžããŸãã
å€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã«ããã JIT éæé©åã«ã¹ã±ãŒãã®æ ¹æº
å€§èŠæš¡JVMã¢ããªã±ãŒã·ã§ã³ã¯ãæ§é çãåäœçããããŠã¢ãŒããã¯ãã£çãªç¹æ§ãèç©ããJITã³ã³ãã€ã©ãæšæž¬çãªä»®å®ãã©ã®ããã«åœ¢æãããã«çŽæ¥åœ±é¿ãäžããŸãããããã®ä»®å®ã¯ãã€ã³ã©ã€ã³å±éã®æ·±ãããããã¡ã€ãªã³ã°ã®å®å®æ§ãã¬ãŒãé 眮ããããŠéå±€ã®ææ Œã®æ±ºå®ã決å®ããŸãããããã®çžäºäœçšãèæ ®ããã«ã³ãŒããé²åãããšãJITã¯åŒã³åºããã§ãŒã³å šäœã«äŒæããç¡å¹åã«å¯ŸããŠãŸããŸãè匱ã«ãªããŸãããã®åäœã¯ã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠç®ã«èŠããªãé¢ä¿æ§ãäºæž¬äžå¯èœãªå®è¡çµæãçã¿åºãç¶æ³ã§ããçžäºæ¥ç¶ãããã¢ãžã¥ãŒã«ã®æ°ãå¢ããã«ã€ããŠãåäžã®åäœã®å€åãããããŸã§æé©åãããŠãããã¹ãäžå®å®ã«ããå¯èœæ§ãå€§å¹ ã«é«ãŸããŸãã
ããªã¢ãŒãã£ãºã ãå¶åŸ¡ãããŒã®è€éããã¢ãžã¥ãŒã«å¢çã®çžäºäœçšã¯ããã°ãã°éæé©åãã¿ãŒã³ãå¢å¹ ãããŸããã³ãŒã«ã°ã©ãã¯äžåäžã«é²åããã€ã³ã¿ãŒãã§ãŒã¹ã¯éè² è·ã«ãªãã以åã¯ã¢ãã¢ãŒãã£ãºã ã ã£ããµã€ãã¯å®è¡æã®å€åæ§ãèç©ããå¯èœæ§ããããŸããçµæãšããŠçããäžå®å®æ§ã¯ã å¶åŸ¡ãããŒã®æŽå¯åå²ãæ§é ã®äžèŠåæ§ãäºæž¬äžå¯èœãªããã©ãŒãã³ã¹ã®å€åã«ã€ãªããå Žåãããªããã£ãã€ãŒãŒã·ã§ã³ã«ã¹ã±ãŒãã®åå ãçè§£ããã«ã¯ãã³ãŒãéã®é¢ä¿æ§ãããŒã¿ãããŒããããŠè² è·æã®åçæåãè©³çŽ°ã«ææ¡ããå¿ èŠããããŸãã
åºç¯å²ã«ãããè±æé©åã®è§ŠåªãšããŠã®é ãã倿 æ§
ããªã¢ãŒãã£ãºã ã¯ãJITããªããã£ãã€ãŒãŒã·ã§ã³ã«ã¹ã±ãŒãã®äžæ žçãªæšé²åã§ããããã¯ãã³ã³ãã€ã©ã芳枬ãããã¬ã·ãŒãåã«åºã¥ããŠææ©çãªä»®å®ãæ§ç¯ããããã§ãããããã¡ã€ãªã³ã°äžã«åŒã³åºããµã€ããã¢ãã¢ãŒãã£ãã¯ãŸãã¯ãã€ã¢ãŒãã£ãã¯ã§ãããšå€æããå Žåãã³ã³ãã€ã©ã¯ããã«å¿ããŠãã¹ãç©æ¥µçã«ã€ã³ã©ã€ã³åãŸãã¯æé©åããŸããããããå€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæ°ãããµãã¿ã€ãã®å°å ¥ãåäœã®å¶çºçãªæ¡åŒµã1ã€ã§ãçºçããã°ã以åã¯å®å®ããŠããåŒã³åºããµã€ããã¡ã¬ã¢ãŒãã£ãã¯ã«å€åããå¯èœæ§ããããŸãããã®å€åã«ãããæ¢åã®ææ©çãªãã¹ãç¡å¹åãããJITã¯ã³ã³ãã€ã«æžã¿ã®ã³ãŒããç Žæ£ããæ°ããåååžã«åºã¥ããŠå®è¡ãåãããã¡ã€ãªã³ã°ããå¿ èŠãçããŸãã
é ããããªã¢ãŒãã£ãºã ã¯ãã¢ãžã¥ãŒã«æ§ãææ©çã«æ¡å€§ããã³ãŒãããŒã¹ã§ãã°ãã°çŸããŸããäŸãã°ãæ©èœéçºããŒã ã¯ãæ¢åã®ã€ã³ã¿ãŒãã§ãŒã¹ããããã«ãŒãå ã§ã©ã®çšåºŠé »ç¹ã«åºçŸããããçè§£ããã«ãæ°ããå®è£ ãå°å ¥ããããšããããŸãããŸããã©ã³ã¿ã€ã ãã¬ãŒã ã¯ãŒã¯ã¯ãéçã¬ãã¥ãŒã§ã¯ç¢ºèªã§ããªãæ¹æ³ã§èŠããäžã®åã®å€æ§æ§ãæ¡å€§ãããããã·åãã¢ããã¿ãçæããããšããããŸããããããå°ããªå€æŽã¯ãæšæž¬ã«åºã¥ãä»®å®ãå€ããåã³ã³ãã€ã«ãµã€ã¯ã«ã®ç¹°ãè¿ããåŒãèµ·ãããŸãã
ããããããªã¢ãŒãã£ãã¯ãªå€åãçè§£ããã«ã¯ãã³ãŒãããŒã¹å šäœã«ãããåã®äœ¿çšãã¿ãŒã³ãšã¬ã·ãŒããŒã®ååžã調ã¹ãå¿ èŠããããŸããæ§é è§£æã¯ãã€ã³ã¿ãŒãã§ãŒã¹å¢çãããã©ãŒãã³ã¹ã¯ãªãã£ã«ã«ãªã«ãŒããšäžèŽããå Žæãç¹å®ããã®ã«åœ¹ç«ã¡ãŸããå®è¡æè§£æã¯ãå®éã®ã¯ãŒã¯ããŒãã«ãããåã®èšåŒµãæããã«ããã®ã«åœ¹ç«ã¡ãŸãããããã®èŠç¹ãçµã¿åãããããšã§ãããªã¢ãŒãã£ãã¯ãªæé·ã®å¹ ãæããã«ãªããããŒã ãå®å®ãããªãã¡ã¯ã¿ãªã³ã°ãã¹ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãããã®ã¢ãããŒãã¯ãåè¿°ã®å¯èŠæ§ã®èª²é¡ãšå ±éããŠããŸãã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãã¢ãžã¥ãŒã«éã®é¢ä¿ããããã³ã°ããããšã§ãé ããå®è¡ãã€ããã¯ã¹ãæç¢ºã«ãªããŸããå¶çºçãªããªã¢ãŒãã£ãºã ãåæžããããã€ã³ã¿ãŒãã§ãŒã¹å¢çãåç·šæãããããããšã§ãçµç¹ã¯é »ç¹ãªJITç¡å¹åãé²ããäºæž¬å¯èœãªå®è¡ãããã¡ã€ã«ãç¶æã§ããŸãã
ã€ã³ã©ã€ã³å±éã®æ·±ããšã³ãŒã«ã°ã©ãã®åœ¢ç¶ãéæé©åã«ã¹ã±ãŒãã«äžãã圱é¿
ã€ã³ã©ã€ã³å±éã¯JITã³ã³ãã€ã©ã«ãããæã匷åãªæé©åã®äžã€ã§ãããåŒã³åºããªãŒããŒãããã宿°äŒæããããŠãããªãææ©çåæã®æé€ãå¯èœã«ããŸããããããã€ã³ã©ã€ã³å±éã¯éæé©åã€ãã³ãã®åœ±é¿ç¯å²ãæ¡å€§ãããŸããæ·±ãã€ã³ã©ã€ã³åãããåŒã³åºãã°ã©ãã«è€æ°ã®åŒã³åºãå ããå°ãããä»®å®ãåã蟌ãŸããŠããå Žåãããããã®ä»®å®ãç¡å¹ã«ãªããšãã³ã³ãã€ã«ããããããã¯å šäœãç Žæ£ãããŸããã€ã³ã©ã€ã³ãã§ãŒã³ãåºç¯ã§ããã°ããã»ã©ãåºç¯å²ã«ãããéæé©åã®ãªã¹ã¯ã¯é«ãŸããŸãã
ã³ãŒã«ã°ã©ãã®æ§é ã¯ããããã®åœ±é¿ãã©ã®çšåºŠåã¶ããæ±ºå®ããäžã§éèŠãªåœ¹å²ãæãããŸããã¡ãœããåŒã³åºãã®é·ãç·åœ¢ãã§ãŒã³ãå«ãããããã¹ã¯ãã€ã³ã©ã€ã³å±éãé²ãã«ã€ããŠæšæž¬çãªä»®å®ãèç©ããããããç¹ã«åœ±é¿ãåãããããªããŸããã€ã³ã©ã€ã³ã°ã©ãã®å€åŽã®å±€ã«ããã¡ãœããã«å°ããªå€æŽãå ããã ãã§ããæ·±ããã¹ãããããããã«ãŒãã«ç¡å¹åãäŒæããå¯èœæ§ããããŸããéã«ãå¹ åºãåå²ãäžå®å®ãªãã¿ãŒã³ãå«ãã³ãŒã«ã°ã©ãã¯ãã€ã³ã©ã€ã³å±éã®æ±ºå®ãå šäœçã«è€éã«ããã³ã³ãã€ã©ããããã¡ã€ãªã³ã°ã¬ãŒãã«å€§ããäŸåããããã«ãªããŸãã
å€ãã®ããŒã ã¯ãããããã¹å ã«ãŠãŒãã£ãªãã£ã¡ãœãããç¹°ãè¿ã远å ããããäžè²«æ§ã®ãããããã¡ã€ãªã³ã°ãæãªãåå²ãå°å ¥ãããããããšã§ãæå³ããã€ã³ã©ã€ã³å±éãäžå®å®ã«ããŠããŸããããã¯ãå®è¡ææé©åã®æåãèæ ®ããã«éå±€åãé²åããŠããã¬ã¬ã·ãŒã³ãŒãããŒã¹ã§ç¹ã«ããèŠãããŸãããã®çµæãã€ã³ã©ã€ã³å±éã®äžå®å®æ§ããéå±€ã®ææ Œãšæé©åè§£é€ã®ãµã€ã¯ã«ã®ç¹°ãè¿ããåŒãèµ·ãããŸãã
ã€ã³ã©ã€ã³åã®æåæ§ãæãé«ãã³ãŒã«ã°ã©ãé åãç¹å®ããã«ã¯ãéçæ€æ»ãšå®è¡æãã¿ãŒã³ã®èгå¯ãçµã¿åãããå¿ èŠããããŸããæ§é è§£æã¯ãã©ã®ã¡ãœãããã³ã¢ãšãªãããããã¹ã圢æããããç¹å®ããã®ã«åœ¹ç«ã¡ãŸããäžæ¹ãå®è¡æããŒã«ã¯ãã³ã³ãã€ã©ãã³ã³ãã€ã«æžã¿ãã¬ãŒã ãç¹°ãè¿ãç Žæ£ããç®æãæããã«ããŸããåŸãããç¥èŠã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³ã¯ãçžäºæ¥ç¶ãããã³ã³ããŒãã³ãéã®å¢çã®æç¢ºããšäºæž¬å¯èœãªåäœãéèŠããŸãã
äžå®å®ãªãããã¡ã€ãªã³ã°ããŒã¿ãç¹°ãè¿ãéå±€é·ç§»ãåŒãèµ·ãã圹å²
éå±€åã³ã³ãã€ã«ã¯ãå®è¡é »åºŠãåååžãåå²ç¢ºçãæãããããã¡ã€ãªã³ã°ããŒã¿ã«å€§ããäŸåããŸãããã®ããŒã¿ãå®å®ããŠããå ŽåãJITã¯ã¡ãœãããäžäœå±€ã«ææ Œãããæé©åããããã·ã³ã³ãŒããçæã§ããŸãããããããããã¡ã€ãªã³ã°ããŒã¿ãã¯ãŒã¯ããŒãããªã¯ãšã¹ãã¿ã€ãããŸãã¯å®è¡ç°å¢éã§å€åãããšãJITã¯å±€éã§æ¯åããå¯èœæ§ããããŸããæ¯åãçºçãããã³ã«ãæé©åè§£é€ã®ãªã¹ã¯ãé«ãŸããŸãã
äžå®å®ãªãããã¡ã€ãªã³ã°ã¯ãæ¬çªç°å¢ãšãã¹ãç°å¢ã®éã§å€§ããç°ãªããªã¯ãšã¹ããã¿ãŒã³ãå®è¡ãã¹ã®äžäžèŽããçããããšããããããŸããåæè² è·äžã§ã¯ãããã«èŠããã¡ãœããããçŸå®ã®ãã©ãã£ãã¯äžã§ã¯å€æ§ãªå ¥åãåãåãå¯èœæ§ããããåå²äºæž¬ãåã®äœ¿çšã«é¢ããæ³å®ã厩ããããšããããŸããéã«ãã³ãŒã«ããšèªèãããŠããã¡ãœãããããããã€ã¡ã³ãã®å€æŽãã¯ãŒã¯ããŒãã®ã·ããã«ãã£ãŠäºæãããããã«ãªãããšããããŸãããããã®äžäžèŽã«ãããJITã¯ãããã¡ã€ãªã³ã°æ å ±ãç¹°ãè¿ãç Žæ£ããæé©åãµã€ã¯ã«ãåéããããåŸãªããªããŸãã
ã¬ã¬ã·ãŒã³ãŒãã¯ãå®è¡ããšã«å€§ããç°ãªãæ¡ä»¶ãããŒã¿ã¢ã¯ã»ã¹ãã¿ãŒã³ããªãã¬ã¯ã·ã§ã³ã®äœ¿çšæ³ãåã蟌ãããšã§ãäžå®å®æ§ããããããŸããåå²ã®éå°ãªäœ¿çšããã¬ãŒã ã¯ãŒã¯ãŠãŒãã£ãªãã£ãžã®é »ç¹ãªå§è²ã¯ããããã¡ã€ãªã³ã°ã®äžå®å®æ§ãæªåãããŸãããããã®æ¡ä»¶ã¯ãJITãä¿¡é Œæ§ã®é«ãä»®å®ãçµ±åããèœåãæãªããçµæãšããŠããã©ãŒãã³ã¹ã®äžå®å®åã«ã€ãªãããŸãã
ãããã¡ã€ãªã³ã°ã®äžå®å®æ§ã®èŠå ãçè§£ããã«ã¯ãæ§é ãã¿ãŒã³ãšå®éã®å®è¡æãã¬ãŒã¹ãçžé¢ãããå¿ èŠããããŸãããŸããã¯ãŒã¯ããŒãã®åœ¢ç¶ãç°å¢éã§JITã®æææ±ºå®ã«ã©ã®ãããªåœ±é¿ãäžããããç£èŠããããšãå¿ èŠã§ãããã®ã¢ãããŒãã¯ã éæšå¥šã³ãŒãã®ãªã¹ã¯ç¶æ¿ãããæ§é ã«ãã£ãŠäºæž¬äžå¯èœãªå®è¡æåäœãçºçããå ŽåããããŸããæ§é çãªãªãã¡ã¯ã¿ãªã³ã°ãããããã¹ã®åèšèšãéããŠãããã¡ã€ãªã³ã°å ¥åãå®å®åããããšã§ãé床ãªéå±€ã®å€æŽãé²ããå šäœçãªå®è¡ã®äžè²«æ§ãåäžãããããšãã§ããŸãã
ã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ãéæé©åã®åœ±é¿ãå¢å¹ ãããä»çµã¿
å€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§ã¯ãã¢ãžã¥ãŒã«ãã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã®åã¬ã€ã€ãŒã«äŸåé¢ä¿ãèç©ãããŸãããããã®äŸåé¢ä¿ã¯ããœãŒã¹ã³ãŒãã¬ãã«ã§ã¯ç¡é¢ä¿ã«èŠããã³ã³ããŒãã³ãéã«éæ¥çãªé¢ä¿ãäœãåºããJITã®åäœã«åœ±é¿ãäžããŸããåºã䜿çšãããŠããã¢ãžã¥ãŒã«ãè€æ°ã®ã€ã³ã©ã€ã³ãã§ãŒã³ã®äžéšã«ãªã£ãããå ±éã®ãŠãŒãã£ãªãã£ã¬ã€ã€ãŒãšããŠæ©èœããããããšããã®åäœãåãããã¡ã€ã«ã倿Žããããšãã·ã¹ãã å šäœã®æé©åãç¡å¹ã«ãªãå¯èœæ§ããããŸãã
ããŒã ãè€æ°ã®ã©ã€ãã©ãªã«è²¬ä»»ã忣ãããæææš©ã調æŽãå®å®ããŠããªããšãã¢ãžã¥ãŒã«éã®å€åæ§ãé«ãŸããŸããç°ãªãã¢ãžã¥ãŒã«ãæ°ããåãå°å ¥ããããã¡ãœããã·ã°ããã£ã調æŽããããåå²åäœã倿ŽããããããšããããããäŸåããã€ã³ã©ã€ã³ãã¹ã«æ³¢åããå¯èœæ§ããããŸããJITã³ã³ãã€ã©ã¯ã³ãŒã«ã°ã©ããå šäœçã«æ±ãããããŠãŒãã£ãªãã£ã¢ãžã¥ãŒã«ã«ãããããããªå€æŽã§ããã倿°ã®æé©åããããã¬ãŒã ã«æ³¢åããå¯èœæ§ããããŸãã
ã¬ã¬ã·ãŒã·ã¹ãã ã®ã¢ããã€ãŒãŒã·ã§ã³ã§ã¯ãè€éãªã¢ãžã¥ãŒã«éã®çžäºäœçšãæéã®çµéãšãšãã«èç©ãããæé©åã®è匱æ§ãçã¿åºããšãããã¿ãŒã³ããã°ãã°æããã«ãªããŸããã¢ãžã¥ãŒã«å¢çãæç¢ºã«ããããäŸåé¢ä¿ã®å¹ ãçãããããææ³ã¯ãJITåäœãå®å®åãããæšæž¬çãªä»®å®ã®ç¯å²ãçž®å°ããã®ã«åœ¹ç«ã¡ãŸãããã®èãæ¹ã¯ãã¢ããã€ãŒãŒã·ã§ã³æŠç¥ã®ç« ã§è°è«ãããŠããèãæ¹ãšäžèŽããŠããŸãã è¿ä»£åããŒã«ã®æŠèŠããã¯ãã·ã¹ãã å šäœã«ãããæ§é ã®æç¢ºãã®éèŠæ§ã匷調ããŠããŸãã
ã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ãšããããããããã¹ã«äžãã圱é¿ããããã³ã°ããããšã¯ãæé©åè§£é€ã€ãã³ãã®åœ±é¿ãæã倧ããå Žæãäºæž¬ããããã«äžå¯æ¬ ã§ããäŸåé¢ä¿ã®å¯åºŠãäœæžãããªã¹ã¯ã®é«ãã¢ãžã¥ãŒã«ãåé¢ããããšã§ãçµç¹ã¯åºç¯å²ã«ãããç¡å¹åã«ã¹ã±ãŒããé²ããããã©ãŒãã³ã¹ã®äºæž¬å¯èœæ§ãåäžãããããšãã§ããŸãã
é »ç¹ãªåã³ã³ãã€ã«ã匷ããé ããããªã¢ãŒãã£ãã¯ãããã¹ãããã®ç¹å®
çŸä»£ã®JITã³ã³ãã€ã©ã¯ãç¹ã«ã¯ãŒã¯ããŒãéã§åäœãå€åããåçã¢ããªã±ãŒã·ã§ã³ããªããžã§ã¯ãæåã¢ããªã±ãŒã·ã§ã³ã«ãããŠãã³ãŒããã¹ãæé©åããããã«å®å®ããåãã£ãŒãããã¯ã«äŸåããŠããŸããã³ã³ãã€ã©ã¯ç¹å®ã®åŒã³åºããµã€ãã§èŠ³æž¬ãããåã«åºã¥ããŠæšæž¬çãªä»®å®ãæ§ç¯ãããããããªã¢ãŒãã£ãºã ãéèŠãªèŠçŽ ãšãªããŸãããããã®åŒã³åºããµã€ããã¢ãã¢ãŒãã£ãã¯ããããªã¢ãŒãã£ãã¯ãããã«ã¯ã¡ã¬ã¢ãŒãã£ãã¯ãžãšé²åãããšã以åã®æé©åã¯ç¡å¹ã«ãªããåºç¯å²ã«ãããåã³ã³ãã€ã«ãçºçããŸãããããã®çžäºäœçšã®æ§é çãªæåæ§ã¯ã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠã³ã³ããŒãã³ãéã®åŸ®åŠãªé¢ä¿ãå®è¡æã®æåã«åœ±é¿ãäžããå Žåã§ãã倿°ã®ã³ã³ããªãã¥ãŒã¿ãŒãé¢äžããå€§èŠæš¡ãªã³ãŒãããŒã¹ã§ã¯ãã€ã³ã¿ãŒãã§ãŒã¹ã®é²åãæ°ããå®è£ ã®è¿œå ã«äŒŽããæå³ããé ããåæ¡åŒµãçºçããããšããããããŸãã
ãšã³ã¿ãŒãã©ã€ãºç°å¢ã§ã¯ãã¢ãŒããã¯ãã£ã®éå±€åããµãŒãããŒãã£ã©ã€ãã©ãªãšã®çµ±åããããŠåçãªãã¬ãŒã ã¯ãŒã¯ã®æåãé »ç¹ã«çºçããããããããã®èª²é¡ã¯ããã«æ·±å»åããŸãããããã·ããã³ã¬ãŒã¿ããããŠã©ã³ã¿ã€ã çæã¢ããã¿ã¯ãåçŽãªéçæ€æ»ã§ã¯ç¢ºèªã§ããªãæ¹æ³ã§åã·ã°ããã£ãæ¡åŒµããŸãããããã®è¿œå åã¯ãã³ã³ãã€ã©ã®åŒã³åºããµã€ãã®å®å®æ§ã«é¢ããæ³å®ã倿ŽããŸããåšèŸºã¢ãžã¥ãŒã«ã«å°å ¥ãããåäžã®æ°ãããµãã¿ã€ãã§ããã以åã¯å®å®ããŠããé«åºŠã«æé©åãããåŒã³åºããµã€ãããäºæããã¡ã¬ã¢ãŒãã£ãã¯ãªãããã¹ãããã«å€ããŠããŸãå¯èœæ§ããããŸãããããã®åé¡ã¯ã å¶åŸ¡ãããŒã®æŽå¯åæ£åäœãšåå²å€åã«ããäºæž¬å¯èœæ§ãäœäžããŸãã
ã³ãŒã«ãµã€ããããã¡ã€ãªã³ã°ã«ããåã€ã³ãã¬ã®æ€åº
åã®ã€ã³ãã¬ã¯ãåäžã®åŒã³åºããµã€ãã§èŠ³æž¬ãããã¬ã·ãŒããŒåã®æ°ãJITãæé©åå¯èœãšå€æããç¯å²ãè¶ ããå Žåã«çºçããŸããã¬ã·ãŒããŒã®ååžãå«ããããã¡ã€ãªã³ã°ããŒã¿ã¯ããããã®å Žæãç¹å®ããäžã§äžå¯æ¬ ã§ããJVMç°å¢ã§ã¯ãéå±€åã³ã³ãã€ã«ã«ãã£ãŠæ§ã ãªãã§ãŒãºã§åãããã¡ã€ã«ãååŸããããããã®ãããã¡ã€ã«ã«åºã¥ããŠã€ã³ã©ã€ã³å±éãã«ãŒãå±éã宿°ç³ã¿èŸŒã¿ãªã©ã®æé©åãè¡ãããŸããã¬ã·ãŒããŒã®å€æ§æ§ããããå€ãè¶ ãããšãã³ã³ãã€ã©ã¯åŒã³åºããµã€ãã®æé©åãæ§ããããå®è¡äžã«æé©åããããã¬ãŒã ãå ã«æ»ãããšããããŸãããã®åäœã¯ããŠãŒãã£ãªãã£ã¢ãžã¥ãŒã«ããã¬ãŒã ã¯ãŒã¯å¢çãåçã«çæããããããã·ãªã©ã§ããèŠãããŸãã
æ€åºã«ã¯ãJFRèšé²ãéå±€é·ç§»ãã°ãªã©ã®ãããã¡ã€ãªã³ã°ã¢ãŒãã£ãã¡ã¯ãã察象ãšããåæãå¿ èŠã§ããããŒã ã¯ãåä¿¡åŽå€æ§æ§ã®é«ããããã¡ãœãããçžé¢ãããããšã§ãäžå®å®ãªåŒã³åºããµã€ããç¹å®ã§ããŸãããããã®ãããã¹ãããã¯ãå€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ã³ãŒãå ã§ã¯ãªããè€æ°ã®ãµãŒãã¹ãæäŸããå ±æã¢ãžã¥ãŒã«å ã«ãããŸããåŒã³åºããµã€ããšã¢ãžã¥ãŒã«å¢çã®æ§é çãªé¢ä¿ã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³ã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ãæ éã«ç®¡çããå¿ èŠããããŸãã
ãããã¡ã€ãªã³ã°ã¯çŸå®çãªã¯ãŒã¯ããŒãã§å®æœããå¿ èŠããããŸããåæãã³ãããŒã¯ã§ã¯ãæ¬çªç°å¢ã§ééããåã®å€æ§æ§ãéå°è©äŸ¡ãããããšãå€ãããã§ããå®éã®ã¬ã·ãŒããŒãã¿ãŒã³ãææããããšã§ãã©ã®åŒã³åºããµã€ããããªã¢ãŒãã£ãºã ã«é¥ãããããã€åŸã«æ°ããåãã©ãã ãæ¥éã«åºçŸããããæããã«ãªããŸããã³ãŒãã®é²åã«ãã£ãŠåã®ã€ã³ãã¬ãçºçããå ŽåãããŒã ã¯ã€ã³ã¿ãŒãã§ãŒã¹ã®åè§£ãç¶æ¿ã®å¹ ã®çž®å°ããããã¯åã®å€æ§æ§ãå¶éããããã®ã·ãŒã«éå±€ã®å°å ¥ãæ€èšããå¿ èŠããããŸãã
ãã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãªã®æ¡åŒµã«ãã£ãŠåœ¢æããã巚倧æ§é ãµã€ãã®èªè
ãªãã¬ã¯ã·ã§ã³ããã€ãã³ãŒãçæããããã¯å€§èŠæš¡ãªäŸåé¢ä¿ã°ã©ãã«äŸåãããã¬ãŒã ã¯ãŒã¯ã¯ãèšèšäžãã¡ã¬ã¢ãŒãã£ãã¯ãªåŒã³åºããµã€ããå°å ¥ããããšããããããŸããäŸåæ§æ³šå ¥ãã¬ãŒã ã¯ãŒã¯ãã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ã©ã€ãã©ãªããããŠãããã·ããŒã¹ã®ã€ã³ã¿ãŒã»ãã¿ãŒã¯ãJITãå¹ççã«ãããã¡ã€ãªã³ã°ã§ããç¯å²ãè¶ ããŠåã·ã°ããã£ãæ¡åŒµããè€æ°ã®ã©ãããŒåãäœæããŸãããããã®ãã¬ãŒã ã¯ãŒã¯ã¯åæã¯ã©ã¹ãåçã«çæããJITã¯åã¯ã©ã¹ãäžæã®ã¬ã·ãŒããŒåãšããŠæ±ããŸããæéã®çµéãšãšãã«ããã®èç©ã«ãããåœåã¯å®å®ããŠããã¢ãã¢ãŒãã£ãã¯ãªç®æããã€ã³ã©ã€ã³åãç¹æ®åãé»ãã¡ã¬ã¢ãŒãã£ãã¯ãªãããã¹ããããžãšå€åããŠãããŸãã
èªèã«ã¯ãåçãªã¯ã©ã¹çæãã¿ãŒã³ãšåŒã³åºããµã€ãã®æåãçžé¢ãããå¿ èŠããããŸããã¯ã©ã¹ã®ããŒãã€ãã³ããšåã®é¢ä¿ãæããã«ããããŒã«ã¯ããµãŒãããŒãã£ã®æ¡åŒµãã€ã³ããæããã«ããããšãã§ããŸããããã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãã¬ã€ã€ãŒéã®é¢ä¿æ§ã远跡ããããšã§ãèªæã§ãªãå®è¡ãã¿ãŒã³ãæããã«ãªããã¡ã¬ã¢ãŒãã£ãã¯ãªãµã€ããç¹å®ããããšããšã³ããªãã€ã³ãã®åèšèšãããã¬ãŒã ã¯ãŒã¯ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãå°çšã®ã¢ããã¿ã«åé¢ããŠãåã®å¢å€§ãããããã¹ã«åœ±é¿ãäžããªãããã«ããå¿ èŠãããã
ããŒã ã¯ãã©ã³ã¿ã€ã çæãããã·ã®æ°ãæžãããããã¬ãŒã ã¯ãŒã¯ãæäŸããåçãã£ã¹ãããã«ä»£ããã«ã¹ã¿ã ãã£ã¹ãããã¡ã«ããºã ãå°å ¥ããããšã§ããããã®ãµã€ããå®å®åãããããšãã§ããŸããå¯èœã§ããã°ãéçé ç·ãäºåèšç®ãããã«ãã¯ã¢ããããŒãã«ããªãã¬ã¯ã·ã§ã³ããŒã¹ã®è§£æ±ºã«ä»£çšã§ããŸãããããã®æŠç¥ã¯ãäºæž¬å¯èœãªåãã£ãŒãããã¯ãç¶æããã¢ããªã±ãŒã·ã§ã³å šäœã®åã³ã³ãã€ã«ã€ãã³ãã®é »åºŠãåæžããã®ã«åœ¹ç«ã¡ãŸãã
å°ããªã€ã³ã¿ãŒãã§ãŒã¹ã®å€æŽãé ããããªã¢ãŒãã£ãºã ãæããã«ããä»çµã¿ãçè§£ãã
å ±æã€ã³ã¿ãŒãã§ãŒã¹ãæœè±¡ã¯ã©ã¹ãžã®å°ããªå€æŽã¯ãJITã®å®å®æ§ã«æå³ããªã圱é¿ãåãŒãå¯èœæ§ããããŸãããã䜿çšãããéå±€æ§é ã«æ°ããã¡ãœãããå®è£ ãç»å Žãããšãã³ã³ãã€ã©ã¯åŒã³åºãå ã®åäœã«é¢ããæ³å®ãåè©äŸ¡ããå¿ èŠããããŸããæ°ããå®è£ ãé »ç¹ã«åŒã³åºãããªãå Žåã§ããJITã¯æœåšçãªã¬ã·ãŒããç¡èŠã§ããªãããããã®ååšã¯ææ©çãªãã¹ã«åœ±é¿ãäžããŸãããã®çŸè±¡ã¯ãå ±ææœè±¡åãæ¥éã«é²åããã¢ãŒããã¯ãã£ã§ã¯ç¹ã«åé¡ãšãªããŸãã
ãããã®å¯äœçšãçè§£ããã«ã¯ãã€ã³ã¿ãŒãã§ãŒã¹ãã¢ãžã¥ãŒã«å¢çãè¶ããŠã©ã®ããã«äŒæãããããããŠç¹å®ã®æœè±¡åã«ã©ãã ãã®ã³ã³ããŒãã³ããäŸåããŠããããè©äŸ¡ããå¿ èŠããããŸãããœãŒã¹ã¬ãã«ã§ã¯å€ç«ããŠããããã«èŠãã倿Žããç¡é¢ä¿ãªã¢ãžã¥ãŒã«ã«ãŸããã倿°ã®åŒã³åºãå ã«åœ±é¿ãåãŒãå¯èœæ§ããããŸããç¶æ¿ããªãŒãšã¢ãžã¥ãŒã«å¢çã®æ§é çè§£æã«ãããã€ã³ã¿ãŒãã§ãŒã¹æ¡åŒµã®ãªã¹ã¯ãäŒæããå Žæãæããã«ãªããŸãããããã®ç¥èŠã¯ãã¢ããã€ãŒãŒã·ã§ã³ã®ãã¿ãŒã³ã«äŒŒãŠããŸãã è¿ä»£åããŒã«ã®æŠèŠå»ºç¯ç©ã®ç¡ç§©åºãªåºããã管çããããšã®éèŠæ§ã匷調ããŠããŸãã
é ããããªã¢ãŒãã£ãºã ãé²ãã«ã¯ãã€ã³ã¿ãŒãã§ãŒã¹ã®é²åãå¶åŸ¡ããæ°ããå®è£ ã®å°å ¥ãå¶éããå¿ èŠã«å¿ããŠæœè±¡åãåå²ããå¿ èŠããããŸããç¶¿å¯ãªã¬ããã³ã¹ã«ãããæ©èœãæ¡åŒµãããŠãããã©ãŒãã³ã¹ãéèŠãªãã¹ãå®å®ããç¶æ ãç¶æã§ããŸãã
äŸåé¢ä¿ã®åæ§ç¯ã«ãã倿 çæé·ã®ç·©å
ããªã¢ãŒãã£ãã¯ãªæ¡åŒµã¯ãå®è¡ãã¹ã®éèŠãªãã€ã³ãã«åºç¯ãªæœè±¡åãé 眮ããäŸåé¢ä¿æ§é ããçããããšããããããŸããæéã®çµéãšãšãã«ãããŒã ã¯æ°ããã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸ©ããã®ã§ã¯ãªããæ¢åã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããããšã§æ°æ©èœã远å ããŸããããã«ããçµå床ãé«ãŸããåã°ã©ããæ¡å€§ããJITã®æ±ºå®ã«æªåœ±é¿ãåãŒããŸããããªã¢ãŒãã£ãã¯ãªãµã€ãã¯ãããŸãã«ãå€ãã®ã¢ãžã¥ãŒã«ãåãæäŸãããšã¡ã¬ã¢ãŒãã£ãã¯ã«ãªããJITã¯ãã£ã¹ãããã®æé©åèœåã倱ããŸãã
ç·©åçã¯ãããçãã€ã³ã¿ãŒãã§ãŒã¹ãã·ãŒã«åããŸãã¯æç€ºçãªãã£ã¹ãããããããå°å ¥ããããšã§ãäŸåé¢ä¿ã®å¹ ãçããããšã«éç¹ã眮ããŸããæœè±¡åãåå²ããããšã§ãJITã¯ããžãã¯ãç¹åããåãããã¡ã€ã«ã®ã¹ã³ãŒããçž®å°ããåæ çãŸãã¯äºæ çãªåŒã³åºããã¿ãŒã³ãç¶æã§ããããã«ãªããŸãããããã®æ¹åã¯ãåè¿°ã®æ§é ç調æŽãåæ ããŠããŸãã 鲿ãããŒã®å®è·µå¢çãåç·šæããããšã§ã·ã¹ãã ã®è匱æ§ã軜æžãããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ããªãŒããŒããŒããããã€ã³ã¿ãŒãã§ãŒã¹ã®åå²ã䜿çšé »åºŠã®äœãå®è£ ã®åé¢ããããã¯åã®å€åãããããã¹ã«åœ±é¿ãäžããªãããã«ãµãŒãã¹å¢çãåæ§ç¯ããããšãªã©ãå«ãŸããŸããäŸåé¢ä¿ã®åç·šæã«ãããçµç¹ã¯JITã®å®å®æ§ãåãæ»ããå€§èŠæš¡ãªJVMãããã€ã¡ã³ãå šäœã®åã³ã³ãã€ã«é »åºŠãåæžã§ããŸãã
æ§é ã³ãŒãé¢ä¿ã«ããã€ã³ã©ã€ã³å±éã®äžå®å®æ§ã®ãããã³ã°
ã€ã³ã©ã€ã³å±éã¯ãçŸä»£ã®JITã³ã³ãã€ã©ãå®è¡ããæé©åã®äžã§ãæã圱é¿åã®ãããã®ã®äžã€ã§ãããåæã«æãè匱ãªãã®ã®äžã€ã§ããããŸããã³ã³ãã€ã©ãã¡ãœããã®ãã§ãŒã³ãã€ã³ã©ã€ã³å±éããéãã¬ã·ãŒãã®åãåŒæ°ã®ãã¿ãŒã³ãåå²ç¢ºçã«é¢ããæšæž¬çãªä»®å®ãåã蟌ãŸããŸããäžæµã®åäœã«ããããªéžè±ããããšããããã®ä»®å®ãç¡å¹ã«ãªããã€ã³ã©ã€ã³å±éãããé åå šäœãç Žæ£ãããå¯èœæ§ããããŸãããã®ãããæ§é çãªã³ãŒãé¢ä¿ãçè§£ããããšã¯ãããã©ãŒãã³ã¹ã®å®å®åã«äžå¯æ¬ ã§ããå€§èŠæš¡ãªã³ãŒãããŒã¹ã«ã¯ãå€ãã®å ŽåããŠãŒãã£ãªãã£ã¡ãœãããå ±ææœè±¡åããŸãã¯æéã®çµéãšãšãã«æ®µéçã«å€åããã¢ãžã¥ãŒã«éåŒã³åºããã¹ã®æ·±ãå±€ãå«ãŸããŠããŸãããããã®æ§é ã¯ã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠçžäºæ¥ç¶ãããã³ã³ããŒãã³ãããåç¬ã§ã¯è©äŸ¡ã§ããªãæ°ããªåäœãçã¿åºãå Žæã§ãã
ã€ã³ã©ã€ã³åã®äžå®å®æ§ã¯ãã¬ã¬ã·ãŒæ§é ãæ¥éã«é²åããæ©èœã«ãã£ãŠãã³ãŒã«ã°ã©ãã®äžäœã«äœçœ®ããã¡ãœããã®æåã倿Žãããå Žåã«ç¹ã«é¡èã«ãªããŸããå°ããªã€ã³ã¿ãŒãã§ãŒã¹ã®å€æŽãåå²ã®è¿œå ããããã¯è»œåŸ®ãªãªãã¡ã¯ã¿ãªã³ã°ã«ãã£ãŠãã¯ããäžæµã«åã蟌ãŸããä»®å®ãäžå®å®ã«ãªãå¯èœæ§ããããŸããJITã¯ã¢ãŒããã¯ãã£ã®æå³ãèªèããªãããããããã¡ã€ãªã³ã°ããŒã¿ãšå®è¡æèŠ³æž¬ã«é ŒããããåŸãŸããããã®ãªã¢ã¯ãã£ãã¢ãã«ã¯ããã¹ãæã«ã¯å®å®ããŠããããã«èŠããŠããå®éã®æ¬çªç°å¢ã®ãã©ãã£ãã¯ã§ã¯åå²ããå®è¡ãã¹ã«å¯ŸããŠã·ã¹ãã ãè匱ã«ããŸãããã®åœ±é¿ã¯ã å¶åŸ¡ãããŒã®æŽå¯åå²ã®ããªãšãŒã·ã§ã³ãšéå±€åãããããžãã¯ã«ãããäºæž¬ã§ããªãå®è¡æç¹æ§ãå°å ¥ãããŸãã
ãã£ãŒãã€ã³ã©ã€ã³ãã§ãŒã³ãç¡å¹åãå¢å¹ ããæ¹æ³
æ·±ãã€ã³ã©ã€ã³ãã§ãŒã³ã¯ãå®å®ããŠããå Žåã«ã¯ããã©ãŒãã³ã¹é¢ã§å€§ããªã¡ãªããããããããŸãã宿°äŒæããããã³ãŒãã®é€å»ãã«ãŒãã¢ã³ããŒãªã³ã°ã¯ãã¹ãŠãã¡ãœããå¢çãè¶ããå¯èŠæ§ã®æ¡åŒµã«ããæ©æµãåããŸããããããã€ã³ã©ã€ã³ãã§ãŒã³ãæ·±ããªãã»ã©ãäœããã®ä»®å®ãç Žç¶»ããå Žåã®åœ±é¿ç¯å²ã¯å€§ãããªããŸããåçãªåã·ãããäºæããªãåå²ããããã¯åŒã³åºãå ã®å€æŽã«ãã£ãŠããã§ãŒã³å šäœã®å®å šãªåã³ã³ãã€ã«ã匷å¶ãããå¯èœæ§ããããŸãããã®ç¡å¹åã®é£éçãªæ§è³ªã¯ãã€ã³ã¿ãŒãã§ãŒã¹ã髿°ŽæºãŠãŒãã£ãªãã£ãäžæµã®å€ãã®å©çšè ã«ãµãŒãã¹ãæäŸããã·ã¹ãã ã§æãé¡èã«ãªããŸãã
ãããã®ãã§ãŒã³ã¯ãå€ãã®å Žåãæå³ããã«çºçããŸããéçºè ã¯ã³ãŒãã®ã¢ãžã¥ãŒã«æ§ãæ¹è¯ããããæç¢ºãã®ããã«ã¡ãœãããæœåºããããäžèŠç¡å®³ã«èŠããå°ããªãŠãŒãã£ãªãã£ãæ¿å ¥ãããããŸããããããã¯ããããã¹ã«æšç§»çã«åã蟌ãŸããŸããJITããããã®æ§é ãæé©åããéãäžèŠç¡é¢ä¿ãªã¢ãžã¥ãŒã«ã®å€æŽã§ãããè€æ°ã®ã¬ã€ã€ãŒã«ãããæé©åè§£é€ãåŒãèµ·ããå¯èœæ§ããããŸããäžå®å®ãªãã§ãŒã³ãç¹å®ããã«ã¯ãã³ãŒã«ã°ã©ãã®æ·±ããšã¡ãœããã®å€åæ§ã®äž¡æ¹ãè©äŸ¡ããå¿ èŠããããŸãããã®çš®ã®æ§é 調æ»ã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãäºæããªãçµæãé¿ããããã«ã¯ãäžæµãšäžæµã®é¢ä¿ãçè§£ããããšãäžå¯æ¬ ã§ãã
ç·©åçãšããŠã¯ãæ·±ããã§ãŒã³ãç°¡çŽ åããããé »ç¹ã«å€æŽãããã³ã³ããŒãã³ããåé¢ããããããã©ãŒãã³ã¹ãéèŠãªãã¹ã«ãããéå°ãªéå±€åãæå¶ãããããããšãæããããŸãããããã®èšèšèª¿æŽã«ãããæšæž¬ã«åºã¥ãä»®å®ã®ç¯å²ãå¶éãããåºç¯å²ã«ãããç¡å¹åã鲿¢ã§ããŸãã
ã€ã³ã©ã€ã³å±éã®æ±ºå®ãæå¶ããäžå®å®ãªåå²ãã¿ãŒã³
åå²äºæž¬å¯èœæ§ã¯ãJITãã¡ãœãããé©åãªã€ã³ã©ã€ã³å±éåè£ãšèŠãªããã©ããã«åœ±é¿ããŸããäºæž¬äžå¯èœãªåå²ãé »ç¹ã«å€åããåå²ãå«ãã¡ãœããã¯ããããã¡ã€ãªã³ã°ã®å®å®æ§ãäœäžãããŸãããã®çµæãã³ã³ãã€ã©ã¯ãããã®ã¡ãœãããã€ã³ã©ã€ã³å±éããªãããšãéžæããå Žåãããã°ãããã«æªãããšã«ãå®è¡äžã«ãšã©ãŒãçºçãã誀ã£ãä»®å®ã«åºã¥ããŠã€ã³ã©ã€ã³å±éããŠããŸãå ŽåããããŸããåå²ããžãã¯ã®ããããªå€æŽã§ãããã³ã³ãã€ã©ã®å®è¡é »åºŠã«é¢ããèªèãå€ããåºç¯å²ã«ãããæé©åã®éžè±ãåŒãèµ·ããå¯èœæ§ããããŸãã
ã¬ã¬ã·ãŒã·ã¹ãã ã«ã¯ãèšå®ãã©ã°ããªã¯ãšã¹ãã¡ã¿ããŒã¿ããããã¯åçã«ãŒãã£ã³ã°åäœã«ãã£ãŠé§åãããæ¡ä»¶ä»ãããžãã¯ãé »ç¹ã«å«ãŸããŠããŸãããããã®æ¡ä»¶ã¯ãã¹ãç°å¢ãšã®æŽåæ§ãæªãããããã¡ã€ãªã³ã°ã§èª€ã£ããã¿ãŒã³ãææãããŠããŸãå¯èœæ§ããããŸããå®äžçã®ãã©ãã£ãã¯ããã¹ãå ¥åãšç°ãªãå Žåãã³ã³ãã€ã©ã¯ã€ã³ã©ã€ã³ã¡ãœãããç¡å¹åãããããã¡ã€ãªã³ã°ãåéããŸããããããå€åã¯å®è¡ã«ãžãã¿ãŒããããããéå±€é·ç§»ã®é »åºŠãçŽæ¥çã«å¢å ãããŸãã
ãã®ãã€ããã¯ã¹ã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³ã¢ãžã¥ãŒã«éã®è€éãªçžäºäœçšã«ãããã·ã¹ãã ã®åäœã«äžè²«æ§ããªããªãå ŽåããããŸããçµç¹ã¯ãåå²ã®ç²åºŠã现ããããããæ®çºæ§ããžãã¯ãåé¢ããããã¡ãœãããåå²ãããããããšã§ãå®å®ããããããã¹ãã³ã³ãã€ã«æã«äºæž¬å¯èœã«ãªãããã«ããããšã§ããã®åé¡ã«å¯ŸåŠã§ããŸãã
ã€ã³ã©ã€ã³å±éã®ææ©ãæã¡ç ŽãåŒã³åºãå ã®åäœã®é²å
åŒã³åºãå ã¡ãœããã®åäœã¯ãã€ã³ã©ã€ã³å±éã®å®å®æ§ã«å€§ãã圱é¿ããŸãããããã¡ã€ãªã³ã°äžã«å®å®ããŠããããã«èŠããã¡ãœããã§ãã£ãŠããæ°ããå®è£ ããã©ã°ããŸãã¯åäœãå°å ¥ããããšäžå®å®ã«ãªãå¯èœæ§ããããŸããnullãã§ãã¯ãåŒã³åºãã®ãã°èšé²ããªãã·ã§ã³ã®æ©èœãã©ã°ã®è¿œå ãšãã£ãäºçްãªå€æŽã§ãããäžæµã®ã€ã³ã©ã€ã³å±éãã§ãŒã³ã«åã蟌ãŸããåæãèŠããŠããŸãå¯èœæ§ããããŸãããããã倿Žã¯ãäžæµã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãèæ ®ããã«è¡ãããããšããããããŸãã
ãããã£ãŠããªãã¡ã¯ã¿ãªã³ã°äœæ¥ã§ã¯ãã€ã³ã©ã€ã³é åå ã§å€æŽãããã¡ãœãããã©ã®çšåºŠé »ç¹ã«é 眮ãããŠããããèæ ®ããå¿ èŠããããŸããããŒã ã¯ã倿Žé »åºŠãäŸåé¢ä¿ã®å¹ ãããããã¹å ã®é 眮ã調ã¹ãããšã§ããªã¹ã¯ã®é«ãã¡ãœãããç¹å®ã§ããŸãã宿çã«å€æŽãããã¡ãœããã¯ãæ·±ãã€ã³ã©ã€ã³ãã§ãŒã³ããåé¢ããããåå²ãšããªã¢ãŒãã£ãºã ãæå°éã«æããããã«åèšèšããå¿ èŠããããŸãããããã®æ§é çæ¹åã¯ãæ¬æžã§åŒ·èª¿ãããŠããäœç³»çãªæ¹è¯ãåæ ããŠããŸãã è¿ä»£åããŒã«ã®æŠèŠæç¢ºããšã¢ãžã¥ãŒã«å¶åŸ¡ã«ããã·ã¹ãã ã®è匱æ§ã軜æžãããŸãã
åŒã³åºãå ãå®å®åãããããšã§ãã³ãŒãã®é²åãµã€ã¯ã«å šäœã«ããã£ãŠæé©åã®æå¹æ§ãç¶æã§ããŸããé »ç¹ã«å€æŽãããã¡ãœãããããã©ãŒãã³ã¹ãéèŠãªé åå€ã«ããå Žåãéæé©åã®é »åºŠã¯èããäœäžããŸãã
ã¢ãžã¥ãŒã«å¢çãè¶ããæå³ããªãã€ã³ã©ã€ã³ããªã¢ã®ç¹å®
éå°ãªtry-catchãããã¯ãåæé åããªãã¬ã¯ã·ã§ã³åŒã³åºããå¯èŠæ§ãäžååãªã¢ãžã¥ãŒã«å¢çãè¶ããã¢ã¯ã»ã¹ãªã©ãç¹å®ã®ãã¿ãŒã³ã¯ã€ã³ã©ã€ã³å±éãå®å šã«åŠšããŸãããããã®éå£ã¯æ©èœçãªã»ãã³ãã£ã¯ã¹ãä¿è·ããŸãããJITãåé¿ã§ããªãæ§é çãªé害ããããããŸããæéã®çµéãšãšãã«ãæ£åšããã€ã³ã©ã€ã³å±ééå£ã¯ããããã¹ã®é床ãäœäžãããæé©åã®æ©äŒãæçåããã³ã³ãã€ã©ã®ææ©çã¬ãŒããžã®äŸå床ãé«ããŸãã
ã€ã³ã©ã€ã³ããªã¢ã¯ãã¢ãžã¥ãŒã«éã®çžäºäœçšãããã©ãŒãã³ã¹éèŠã®ãã¿ãŒã³ã§ã¯ãªããæ¢åã®ãã¿ãŒã³ã«åŸãã¢ãŒããã¯ãã£éå±€åããçããããšããããããŸããäŸãã°ãå ±æã©ã€ãã©ãªå ã®ãŠãŒãã£ãªãã£ã¯ã©ã¹ã«ã¯ãã€ã³ã©ã€ã³åã劚ããæ€èšŒããã°èšé²ãäºææ§ããžãã¯ãå«ãŸããŠããå ŽåããããŸãããããã®ãŠãŒãã£ãªãã£ããããå®è¡ã·ãŒã±ã³ã¹ã®éäžã«äœçœ®ãããšããããã«äŸåãããã¹ãæé©åããã³ã³ãã€ã©ã®èœåãå¶éãããŸãã
ã€ã³ã©ã€ã³ããªã¢ãç¹å®ããã«ã¯ãåŒã³åºããã§ãŒã³ã®æ§é çè©äŸ¡ãšãã¢ãžã¥ãŒã«å¢çãJITã®æ±ºå®ã«ã©ã®ããã«åœ±é¿ããããçè§£ããå¿ èŠããããŸãããã®è©äŸ¡ã¯ãå€ãã®å Žåã 鲿ãããŒã®å®è·µæ©èœå¢çãåç·šæããããšã§äžè²«æ§ãåäžããäºæããªãã·ã¹ãã ã®çžäºäœçšãæžå°ããŸãã
ã€ã³ã©ã€ã³ããªã¢ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãå¿ èŠã ãäžå®å®ãªããžãã¯ã®åé¢ããŠãŒãã£ãªãã£ã®åœ¹å²ã®åå²ããããã¯ããã©ãŒãã³ã¹éèŠã®æäœã®ããã®å°çšã®é«éãã¹ã®å°å ¥ãªã©ãå«ãŸããŸãããããã®å¢çãæç¢ºã«ããããšã§ãçµç¹ã¯ã€ã³ã©ã€ã³åŠçã®äžè²«æ§ãå埩ããåé¿å¯èœãªæé©åè§£é€ã€ãã³ããåæžã§ããŸãã
GraalVMãšOpenJ9ã«ãããéå±€åã³ã³ãã€ã«ã®ã¹ã©ãã·ã¥ã®èšºæ
éå±€åã³ã³ãã€ã«ã¯ãã¡ãœãããè§£éå®è¡ããæ®µéçã«æé©åãããå±€ãžãšææ Œãããããšã§ãèµ·åæã®å¿çæ§ãšé·æçãªããã©ãŒãã³ã¹ã®ãã©ã³ã¹ããšãããã«èšèšãããŠããŸããããããå€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºJVMã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã®ã¡ã«ããºã ãäžå®å®ã«ãªãããšããããŸãããããã¡ã€ãªã³ã°ããŒã¿ãäºæž¬äžèœã«å€åããããæšæž¬çãªä»®å®ãç Žç¶»ããããããšãã©ã³ã¿ã€ã ã¯å±€éã§ç¹°ãè¿ãæ¯åããŸãããã®çŸè±¡ã¯ããã°ãã°éå±€åã³ã³ãã€ã«ã¹ã©ãã·ã¥ãšåŒã°ããã¬ã€ãã³ã·ã®æ¥äžæãã¹ã«ãŒãããã®äœäžããããŠäºæž¬äžå¯èœãªå®åžžç¶æ ã®ããã©ãŒãã³ã¹ããããããŸãããã®ã¡ã«ããºã ã®æ§é çãªè匱æ§ã¯ã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠã·ã¹ãã ã®åäœã¯ãæéã®çµéãšãšãã«å€åãã埮åŠãªé¢ä¿æ§ã«ãã£ãŠé§åãããŸããéå±€ã¹ã©ãã·ã¥ã¯ãé«åºŠãªã¢ãžã¥ãŒã«æ§ãããªã¢ãŒãã£ãã¯ãªåäœããŸãã¯é«åºŠã«åçãªã¯ãŒã¯ããŒããæã€ã·ã¹ãã ã§é »ç¹ã«çºçããŸãã
ãã®äžå®å®æ§ã¯ãåãµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ãç¬èªã®ãã©ãã£ãã¯ãã¿ãŒã³ãç°çš®ããŒã¿ãããŒãçµéšãã忣ç°å¢ã§ã¯ããé¡èã«ãªããŸããGraalVMãšOpenJ9ã¯å®è¡æãã£ãŒãããã¯ã«å€§ããäŸåããŠãããããã¯ãŒã¯ããŒãç¹æ§ã®çžéã¯ãµãŒãã¹ã€ã³ã¹ã¿ã³ã¹éã§ç°ãªãæé©åãã¹ãçã¿åºããŸããã¬ã¬ã·ãŒã³ãŒãã«ãã£ãŠäžè²«æ§ã®ãªãåå²ãåã®å¯å€æ§ããããã¯äºæž¬äžå¯èœãªå§è²ãçãããšããããã¡ã€ãªã³ã°ã®å®å®æ§ã¯ããã«äœäžããŸãããããã®åœ±é¿ã¯ã å¶åŸ¡ãããŒã®æŽå¯åå²ã®äžèŠåæ§ã«ãã£ãŠäºæž¬å¯èœæ§ãæãªãããå¯èœæ§ããããŸããéå±€é·ç§»ãå éããã«ã€ããŠãã©ã³ã¿ã€ã ã¯ã³ã³ãã€ã«æžã¿ã®ãã¬ãŒã ãç¹°ãè¿ãç Žæ£ããã€ã³ã¹ãã«ã¡ã³ãæžã¿ã®ãã¬ãŒã ã埩å ãããããã·ã¹ãã ãæé©ãªå¹çã«å°éã§ããªããªããŸãã
ãããã¡ãœããã®ææ Œãšéæ Œã®ãã¿ãŒã³ãçè§£ãã
éå±€åã³ã³ãã€ã«ã¯ã段éçãªææ Œã¢ãã«ã«åºã¥ããŠããŸãããã®ã¢ãã«ã§ã¯ãã¡ãœããã¯æåã«è§£éãããæ¬¡ã«C1ã³ã³ãã€ã«ã«ææ Œãããæçµçã«ã¯JVMã«å¿ããŠC2ãŸãã¯Graalã«ãã£ãŠã€ã³ã©ã€ã³åãŸãã¯ãããªãæé©åãè¡ãããŸããææ Œã«ã¯å®å®ãããããã¡ã€ãªã³ã°ããŒã¿ãå¿ èŠã§ãããéæ Œã¯ããŒã¿ãä¿¡é Œã§ããªãããŸãã¯ç¡å¹ã«ãªã£ãå Žåã«çºçããŸããéå±€éã®é »ç¹ãªåãæ¿ãã¯ãJITãã¡ãœããã®é·æçãªåäœãç¹°ãè¿ã誀ã£ãŠå€æããŠããããšã瀺ããŠããŸãã
ãããã¡ãœããã¯ãåŒã³åºãé »åºŠãã«ãŒãå®è¡åæ°ãåã®äœ¿çšãããã¡ã€ã«ã«åºã¥ããŠææ Œã®åè£ãšãªããŸããã¡ãœãããç°ãªãå®è¡ãã§ãŒãºã§äžè²«æ§ã®ãªããããã¡ã€ã«ãçæããå Žåãã©ã³ã¿ã€ã ã¯äžå®å®ã§ãããšèªèããŸããäŸãã°ãã¡ãœãããç¹å®ã®ãªã¯ãšã¹ãããŒã¹ãæã«ã¯ãããã§ããäžæ¹ãä»ã®æéã«ã¯ã³ãŒã«ãã§ããå Žåããããã¯å ¥åããŒã¿ã®å€åã«ãã£ãŠåã·ã°ããã£ãå€åããå Žåã¯ãã³ã³ãã€ã©ã¯ææ Œãšéæ Œãç¹°ãè¿ãå¯èœæ§ããããŸãããã®ãããªã·ããªãªã¯ãã€ã³ã¹ã¿ã³ã¹ãæéééã«ãã£ãŠãã©ãã£ãã¯ãã¿ãŒã³ãç°ãªããçŸä»£ã®ãã€ã¯ããµãŒãã¹ã¯ãŒã¯ããŒãã§ããèŠãããŸãã
ãããã®ãã¿ãŒã³ã蚺æããã«ã¯ãå®è¡æãã¬ã¡ããªãšã³ãŒãæ§é ã®ç¹æ§ãšã®çžé¢åæãå¿ èŠã§ããããŒã ã¯ãã©ã®ã¡ãœãããå±€éã§ã¹ã©ãã·ã¥ãããã ãã§ãªããçŸå®çãªã¯ãŒã¯ããŒãã§ãããã®åäœãå€åããçç±ãèæ ®ããå¿ èŠããããŸãããã®çžé¢åæã®å¿ èŠæ§ã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãåå¥ã®æ€æ»ã ãã§ã¯ã·ã¹ãã ã®åºç¯ãªåäœãæããã«ããã®ã«äžååãªå ŽåãããŒã ã¯ãªãã¡ã¯ã¿ãªã³ã°ãããªã¢ãŒãã£ãºã ã®åæžã«ãã£ãŠãããã¡ãœããã®åäœãå®å®åãããããšã§ãã³ã³ãã€ã©ãããä¿¡é Œæ§ã®é«ããããã¡ã€ã«ãäœæããéå±€ã®å€æŽãé ãããã®ãæ¯æŽããŸãã
å埩çãªé局移è¡ã®èŠå ãšããŠã®ãã©ãã£ãªãã£ã®ãããã¡ã€ãªã³ã°
ãããã¡ã€ãªã³ã°ããŒã¿ã¯éå±€åã³ã³ãã€ã«ã®åºç€ã圢æããŸããããã«ã¯ãåå²çµæãã«ãŒãåæ°ãåååžãå²ãåœãŠé »åºŠãäŸå€ãã¹ãªã©ãå«ãŸããŸãããããã¡ã€ãªã³ã°ãå®å®ããŠããå Žåãã¡ãœããã¯éå±€ãã€ãã©ã€ã³ãã¹ã ãŒãºã«é²ã¿ããããã¡ã€ã«ãå€åãããšãéå±€åã³ã³ãã€ã«ã¯æ··ä¹±ãæããŸãããã®å€åæ§ã¯ãå€åã®å€§ããã¯ãŒã¯ããŒããå ¥åããŒã¿ãé »ç¹ã«å€æŽãããã·ã¹ãã ããŸãã¯ã»ãã·ã§ã³éã§ãŠãŒã¶ãŒã®åäœã倧ããç°ãªãã¢ããªã±ãŒã·ã§ã³ã§ç¹ã«é¡èã«ãªããŸãã
ãã¬ãŒã ã¯ãŒã¯ã®æœè±¡åã«ãã£ãŠåå²ãã¹ãåçã«ãŒãã£ã³ã°ã®æ±ºå®ãé èœããããšãäžå®å®æ§ã¯ããã«æªåããŸããäŸãã°ããªãã¬ã¯ã·ã§ã³ãå€çšãããã¬ãŒã ã¯ãŒã¯ã¯ãã³ã³ãã€ã©ã容æã«äºæž¬ã§ããªãå®è¡ãã¹ãå°å ¥ããŸããåæ§ã«ãäŸåæ§æ³šå ¥ã³ã³ãããã€ãã³ãé§ååèšèšã¯ãå®è¡æã®ã³ã³ããã¹ãã«å¿ããŠå®è¡ãã¿ãŒã³ã倿Žããå¯èœæ§ããããŸãããããã®å€åã¯ãJITãäžè²«ããä»®å®ãæ§ç¯ããèœåãæãªããã¡ãœããã®åã€ã³ã¹ãã«ã¡ã³ããç¹°ãè¿ãåå ãšãªããŸãã
ãããã¡ã€ãªã³ã°ã®äžå®å®æ§ãç¹å®ããã«ã¯ãå®è¡æãã°ãšäžæµã®æ§é çããªã¬ãŒã®äž¡æ¹ãåæããå¿ èŠããããŸãããã¹ãç°å¢ã§ã®ãããã¡ã€ãªã³ã°ã¯ãå®éã®æ¬çªç°å¢ã®åäœãåæ ããªãããšãå€ããå¶åŸ¡ãããè©äŸ¡ã§ã¯å®å®ããŠããããã«èŠããã¡ãœããããè² è·ãããããšäžå®å®ã«ãªãããšãæå³ããŸãããã®ã®ã£ããã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³è€éãªäŸåé¢ä¿ãç°å¢ã«ãã£ãŠç°ãªãåäœãããå ŽåããããŸããäžå®å®æ§ã軜æžããã«ã¯ãããããã¹ã®ãªãã¡ã¯ã¿ãªã³ã°ãäžèŠãªåå²ã®æé€ããããã¯åçãªãã¬ãŒã ã¯ãŒã¯æ©èœãéèŠãªåŒã³åºããã§ãŒã³ããåé¢ããããšãå¿ èŠã«ãªãå ŽåããããŸãã
GraalVM ãš OpenJ9 ã«ãããéå±€åã³ã³ãã€ã«ã®åäœã®éã
GraalVMãšOpenJ9ã¯éå±€åã³ã³ãã€ã«ã®å®è£ æ¹æ³ãç°ãªããç°ãªãé害ã¢ãŒããåŒãèµ·ãããŸããGraalVMã¯ãéšåçãªãšã¹ã±ãŒãè§£æãšé«åºŠãªã€ã³ã©ã€ã³å±éãã¥ãŒãªã¹ãã£ãã¯ã«åºã¥ãç©æ¥µçãªææ©çæé©åã«éç¹ã眮ããŠããŸããããã«ãããããããã¹ãé«åºŠã«æé©åã§ããŸããããããã¡ã€ãªã³ã°ç²ŸåºŠã«å¯ŸããæåºŠãé«ãŸããŸããä»®å®ãç Žç¶»ããå ŽåãGraalVMã¯ã€ã³ã©ã€ã³å±éãããã³ãŒãã®å€§éšåãç Žæ£ãããããéå±€é·ç§»ã®é£éçãªé倧床ãé«ãŸããŸãã
å¯Ÿç §çã«ãOpenJ9ã¯å®åžžç¶æ ã®äºæž¬å¯èœæ§ãéèŠããé«åºŠãªãã¥ãŒãªã¹ãã£ãã¯ãçµã¿èŸŒãããšã§ãæ©ãããææ Œãéå°ãªææ©å®è¡ã鲿¢ããŸããããã«ãããæ¿ããã¹ã©ãã·ã³ã°ã®ãªã¹ã¯ã¯è»œæžãããŸãããéåžžãšã¯ç°ãªãã¯ãŒã¯ããŒããã¿ãŒã³ãæã€ã¢ããªã±ãŒã·ã§ã³ã§ã¯æé©åãé å»¶ããå¯èœæ§ããããŸããOpenJ9ãåäœã誀解éããå ŽåãçµæãšããŠçããéæ Œãµã€ã¯ã«ã¯GraalVMã®åã³ã³ãã€ã«ã«ã¹ã±ãŒããããé »ç¹ã«çºçããŸããããã®æ·±å»åºŠã¯GraalVMãããäœããªããŸãã
ãããã®éããçè§£ããããšã§ãããŒã ã¯ãã¥ãŒãã³ã°æŠç¥ã調æŽãããããªããŸããGraalVMã§ã¯ãããªã¢ãŒãã£ãã¯ãªå€åæ§ãäœæžããããäžå®å®ãªãã©ã³ããåé¢ãããããããšã§ã¡ãªãããåŸãããå¯èœæ§ããããŸãããOpenJ9ã§ã¯ãŠã©ãŒã ã¢ããæ¡ä»¶ã®èª¿æŽãç¹å®ã®JITãã©ã¡ãŒã¿ã®å¶åŸ¡ãå¿ èŠã«ãªãå ŽåããããŸãããã®ãªãã¬ã¯ãã£ããªãã¥ãŒãã³ã°ã¢ãããŒãã¯ã è¿ä»£åããŒã«ã®æŠèŠã¢ãŒããã¯ãã£ã®ã³ã³ããã¹ãã«åºã¥ããŠæé©åã®æ±ºå®ãè¡ãå¿ èŠããããŸãã
JFRããã°ãã³ãŒã«ã°ã©ãæ§é ã®çžé¢é¢ä¿ã«ãããã£ã¢ã¹ã©ãã·ã¥ã®æ€åº
ãã£ã¢ã»ã¹ã©ãã·ã¥ãæ€åºããã«ã¯ããããã¡ã€ãªã³ã°ã»ã€ãã³ããJITã³ã³ãã€ã«ã»ãã°ããããŠã³ãŒãæ§é ã®ç¹æ§éã®çžäºäœçšã芳å¯ããå¿ èŠããããŸããJFRã¯ãæé©åè§£é€ã®çç±ããã£ã¢é·ç§»ãåãããã¡ã€ã«ããããŠã³ã³ãã€ã«å€±æãèšé²ããŸããJITãã°ãšçµã¿åãããããšã§ãã¡ãœããããã£ã¢éã§æ¯åããã¿ã€ãã³ã°ãšçç±ãæç³»åã§ææ¡ã§ããŸããããããæ ¹æ¬åå ãç¹å®ããã«ã¯ããã®æ å ±ãã³ãŒã«ã°ã©ãæ§é ãšçžé¢ãããããšãäžå¯æ¬ ã§ãã
ãã£ã¢ã»ã¹ã©ãã·ã¥ã¯ãç¹°ãè¿ãåã³ã³ãã€ã«ãããã¡ãœããã§ã¯ãªãããããã¡ã€ãªã³ã°ãäžå®å®ã«ããäžæµã®äŸåé¢ä¿ã«èµ·å ããããšããããããŸããäŸãã°ãé »ç¹ã«å€æŽããããŠãŒãã£ãªãã£ã¡ãœããããé²åãããã¬ãŒã ã¯ãŒã¯ã®ãšã³ããªãã€ã³ãã¯ãåååžãåå²åäœãå€åãããå¯èœæ§ããããŸããããããäžæµã®å€åã¯ãæ§é çã«å®å®ããŠããããã«èŠããã¡ãœããã§ãã£ãŠããäžæµã«äžå®å®æ§ããããããŸãã
ãã®äŸåæ§æåæ§ã¯ã 鲿ãããŒã®å®è·µäžæµã®å€æŽãåºç¯å²ã«åã¶ããããŠæã«ã¯æå³ããªã圱é¿ãåãŒãå ŽåãJFRããŒã¿ãšã³ãŒã«ã°ã©ãåæãçžé¢ãããããšã§ãããŒã ã¯æ§é çãªããªã¬ãŒãæ£ç¢ºã«ç¹å®ããã¿ãŒã²ãããçµã£ããªãã¡ã¯ã¿ãªã³ã°ãé©çšããŠãããã¡ã€ãªã³ã°å ¥åãå®å®åãããããšãã§ããŸããããã«ããããã£ã¢ã®å€æŽé »åºŠãäœæžããGraalVMãšOpenJ9ã®äž¡æ¹ã®ç°å¢ã§äºæž¬å¯èœãªJITåäœãå埩ããŸãã
ãããã³ãŒããã¹ã«ããããã¬ãŒã ã¯ãŒã¯ã«ããäºæž¬äžå¯èœæ§ãåãé¢ã
çŸä»£ã®ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ã¯ããã¬ãŒã ã¯ãŒã¯ãäŸåæ§æ³šå ¥ã³ã³ãããåçãããã·ããªãã¬ã¯ã·ã§ã³ããããŠã¢ãããŒã·ã§ã³é§ååã®æ¯ãèãã«å€§ããäŸåããŠããŸãããããã®æœè±¡åã¯éçºãå éãããäžæ¹ã§ãJITæé©åãäžå®å®ã«ããå®è¡å€åæ§ããããããŸãããœãŒã¹ã³ãŒãäžã§ã¯åçŽã«èŠããããããã¹ã¯ããã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠçæãããå€å±€ã®éæ¥åç §ãé èœããŠããå¯èœæ§ããããŸãããããã®å±€ã¯ãåŒã³åºãæ§é ã倿Žãã远å ã®åãå°å ¥ããéçºè ã«ã¯èŠããªã圢ã§åå²ã®æ¯ãèããå€ããŸããçµæãšããŠçããäºæž¬äžå¯èœæ§ã¯ã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠã·ã¹ãã ã®æåãçè§£ããã«ã¯ãããæ·±ãå¯èŠæ§ãæ±ããããŸããJITã¯ãŠã©ãŒã ã¢ããäžã«ç¢ºç«ãããæåŸ å€ãšã¯ç°ãªãå®è¡æä¿¡å·ãåä¿¡ããããããããã³ãŒããã¹ã¯æé©åè§£é€ã®åœ±é¿ãåãããããªããŸãããã®äžæŽåã«ãããææ©çãªç¡å¹åã®é »åºŠãå¢å ããçŸå®çãªã¯ãŒã¯ããŒãã«ãããããã©ãŒãã³ã¹ã®äœäžã«ã€ãªãããŸãã
ãã¬ãŒã ã¯ãŒã¯ã«èµ·å ããäºæž¬äžå¯èœæ§ã¯ãåçãªã¯ãŒã¯ããŒãã䌎ãJVMç°å¢ã§ã¯ç¹ã«åé¡ãšãªããŸããGraalVMãšOpenJ9ã¯ããããã¡ã€ãªã³ã°ããŒã¿ã«åºã¥ããŠç¹åã®æ±ºå®ãå°ããŸãããã¬ãŒã ã¯ãŒã¯ãå¯å€ã®åŒã³åºã圢ç¶ãäºæž¬äžå¯èœãªåååžãçæããå Žåããããã®æ±ºå®ã¯äžå®å®ã«ãªããŸããåçãªããžã§ã¯ãçæããããã·éå±€åãèªåçæã€ã³ã¿ãŒã»ãã¿ãŒã¯ãåŒã³åºãéã§å®è¡ç¹æ§ãå€åãããããšããããããŸãããããã®å€åã¯ãåè¿°ã®æ§é çãªäžèŠåæ§ãæš¡å£ããŠããŸãã å¶åŸ¡ãããŒã®æŽå¯å®è¡ãã¿ãŒã³ã®å€åãæé©åãé»å®³ããã±ãŒã¹ããããŸãããã¬ãŒã ã¯ãŒã¯ã®åäœãããããã¹ãšã©ã®ããã«çžäºäœçšããããçè§£ããããšã¯ãå€§èŠæš¡ãªåæ£ã¢ãŒããã¯ãã£ã«ãããŠå®å®ããããã©ãŒãã³ã¹ãç¶æããããã«äžå¯æ¬ ã§ãã
ãããã·ççºã®æ€åºãšã¿ã€ããããã¡ã€ã«ãžã®åœ±é¿
å€ãã®ãã¬ãŒã ã¯ãŒã¯ã¯ãAOPãã€ã³ã¿ãŒã»ãã·ã§ã³ãã³ã³ããã©ã€ããµã€ã¯ã«ããã¯ããµããŒãããããã«ãå®è¡æã«ãããã·ã¯ã©ã¹ãçæããŸãããããã®ãããã·ã¯ãåŒã³åºãå ã«ãããåå¯åºŠãæ¡åŒµããæ°ããã¬ã·ãŒãåãå°å ¥ããå€ãã®å Žåã以åã¯ã¢ãã¢ãŒãã£ãã¯ã ã£ãåŒã³åºããã¡ã¬ã¢ãŒãã£ãã¯ãªãã®ã«å€æããŸãããã®åæ¡åŒµã¯ã€ã³ã©ã€ã³å±éãé»å®³ããã¬ãŒãã®è€éããå¢å€§ãããé »ç¹ãªåã³ã³ãã€ã«ã®å¯èœæ§ãé«ããŸãããããã·ã®äœæã¯ãäŸåæ§æ³šå ¥ãã¬ãŒã ã¯ãŒã¯ãORMã¬ã€ã€ãŒãã»ãã¥ãªãã£ããã«ãŠã§ã¢ã§ç¹ã«ããèŠãããŸãã
ãããã·ã®ççºçå¢å ãæ€ç¥ããã«ã¯ãã¯ã©ã¹ã®ããŒãåäœãšã³ãŒã«ãµã€ãã®ãããã¡ã€ãªã³ã°ããŒã¿ãçžé¢ãããå¿ èŠããããŸããããŒã ã¯ãããããã¹å®è¡äžã«ã©ã®ã¯ã©ã¹ãåºçŸãããã芳å¯ãããããã€ã¡ã³ãéã§ãããã·ã®å¢å åŸåãæ¯èŒããããšãã§ããŸãããããã®èгå¯çµæã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãã³ã³ããŒãã³ãéã®é¢ä¿ããããã³ã°ããããšã§ãé ãããã¿ãŒã³ãæããã«ãªãå ŽåããããŸãããããã·ãœãŒã¹ãç¹å®ãããããã€ã³ã¿ãŒã»ãã¿ãŒãã§ãŒã³ã®åæžãé »ç¹ã«ããªã¬ãŒããããã³ã¬ãŒã¿ã®æžãæããåã®å€åãæå°éã«æããå®å®ããã¢ããã¿ã¬ã€ã€ãŒã®äœæãšãã£ãç·©åæŠç¥ãèããããŸãã
å Žåã«ãã£ãŠã¯ããã¬ãŒã ã¯ãŒã¯é§åã®åäœãäºåèšç®ããããããã³ã°ã軜éãã£ã¹ãããããŒãã«ã«çœ®ãæããããšã§ãããããã¹ãããããã·ãå®å šã«æé€ã§ããŸããããã«ããåã®ã°ãã€ãã軜æžãããJITã®äºæž¬å¯èœæ§ãå埩ããŸãããããã·ãæ®ããŠããå¿ èŠãããå Žåã¯ãå éšã«ãŒããããã©ãŒãã³ã¹ãéèŠãªãããŒã®å€åŽã«åé¢ããããšã§ãæé©åã®å®å®æ§ãç¶æã§ããŸãã
ãªãã¬ã¯ã·ã§ã³ããŒã¹ã®æäœãã€ã³ã©ã€ã³å±éãšãããã¡ã€ãªã³ã°ã®å®å®æ§ã«åãŒã圱é¿
ãªãã¬ã¯ã·ã§ã³ã¯åŒ·åã§ã¯ãããã®ã®ãJITæé©åã«ãããŠæãäžå®å®ãªã¡ã«ããºã ã®äžã€ã§ãããªãã¬ã¯ã·ã§ã³æäœã¯éçãªåé¢ä¿ããã€ãã¹ãããããã³ã³ãã€ã©ã¯åŒã³åºã圢æ ã«é¢ããäžå®å šãªæ å ±ãåãåãããªãã¬ã¯ã·ã§ã³åŒã³åºããã€ã³ã©ã€ã³å±éã§ããŸãããããã«ããªãã¬ã¯ã·ã§ã³å®è¡ã¯ãã¬ã·ãŒããŒã®ååžã倿Žããåçãªã¯ã©ã¹ããŒãã£ã³ã°ãé »ç¹ã«åŒãèµ·ãããŸãããããã®åäœã¯ãããããå®å®ãããããã¡ã€ãªã³ã°ãé»å®³ããŸãã
ãªãã¬ã¯ã·ã§ã³ã¯ãã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãåçã«ãŒãã£ã³ã°ã·ã¹ãã ãORMããŒã«ãã¢ãããŒã·ã§ã³ããã»ããµã§ãã䜿çšãããŸããããããã¹å ã§ãªãã¬ã¯ã·ã§ã³ãçºçãããšãã€ã³ã©ã€ã³ããªã¢ãšããŠæ©èœããåã®äœ¿çšã«ã°ãã€ããçããŸãããããã®ç¹æ§ã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³åçãªåäœã«ãã£ãŠäºæž¬å¯èœãªå®è¡ãããŒãäžæãããããšããããŸãã
ç·©åçãšããŠã¯ããªãã¬ã¯ã·ã§ã³ãããããã¹ããç§»åãããããªãã¬ã¯ã·ã§ã³ã«ããã«ãã¯ã¢ããããã£ãã·ã¥ããããªãã¬ã¯ã·ã§ã³ãçæãããéçã¢ã¯ã»ãµã«çœ®ãæãããªã©ãæããããŸãããªãã¡ã¯ã¿ãªã³ã°ãå¯èœãªå Žåãéçºè ã¯äºåèšç®æžã¿ã®ã¹ããŒããäºåæ€èšŒæžã¿ã®ã«ãŒãã£ã³ã°ããŒãã«ãå°å ¥ããããšã§ãããã©ãŒãã³ã¹ãéèŠãªæäœã«ããããªãã¬ã¯ã·ã§ã³ã«ãããã£ã¹ãããã®å¿ èŠæ§ãæé€ã§ããŸãããããã®èª¿æŽã¯ããããã¡ã€ãªã³ã°ããŒã¿ã®å®å®åãšãéæé©åã®é »åºŠã®åæžã«åœ¹ç«ã¡ãŸãã
éçãã¥ãŒãšå®è¡æãã¥ãŒãçµã¿åãããŠãã¬ãŒã ã¯ãŒã¯ã®ãããã¹ããããç¹å®ãã
ãã¬ãŒã ã¯ãŒã¯ã«èµ·å ããããã©ãŒãã³ã¹ã®åé¡ã¯ãæœè±¡åã¬ã€ã€ãŒã®èåŸã«é ããŠããããšãå€ããéçè§£æã ãã§ã¯èšºæãå°é£ã§ããã©ã³ã¿ã€ã ãããã¡ã€ãªã³ã°ã¯å®è¡ç¹æ§ãæããã«ããŸãããæ§é çãªã³ã³ããã¹ãããªããã°ãããŒã ã¯äžå®å®æ§ã®åå ã誀ã£ãŠè§£éããå¯èœæ§ããããŸãã广çãªèšºæã«ã¯ãéçäŸåé¢ä¿ãããã³ã°ãšã©ã³ã¿ã€ã ãã¬ã¡ããªãçµã¿åãããå¿ èŠããããŸããããã¯ãåè¿°ã®æ§é çæŽå¯ãšæŽåããææ³ã§ãã è¿ä»£åããŒã«ã®æŠèŠãã®çµã¿åããã«ãããããŒã 㯠JIT ã€ãã³ãããã¬ãŒã ã¯ãŒã¯åºæã®æäœãšé¢é£ä»ããããšãã§ããŸãã
ã©ã€ããµã€ã¯ã«ããã¯ãã€ã³ã¿ãŒã»ãã¿ãŒã¹ã¿ãã¯ããŸãã¯ã¯ãªãã£ã«ã«ã³ãŒã«ãã¹ã«äœçœ®ããèªåçæãµãŒãã¹ã§ã¯ããããã¹ããããé »ç¹ã«çºçããŸãããããã®ãã¿ãŒã³ãåºçŸããå ŽåãããŒã ã¯å¯Ÿå¿ãããã¬ãŒã ã¯ãŒã¯ã³ã³ããŒãã³ããåé¢ããäžèŠãªåå²ãããªã¢ãŒãã£ãºã ããŸãã¯ã¯ã©ã¹ããŒãã£ã³ã°ãå°å ¥ããŠããªããã©ãããè©äŸ¡ã§ããŸããæ§é åæã¯ããªãã¡ã¯ã¿ãªã³ã°ãã¢ããã¿ã®æ¿å ¥ããŸãã¯å¢çåé¢ã«ãã£ãŠäºæž¬äžå¯èœãªåäœãå¶éã§ãããã©ããã倿ããã®ã«åœ¹ç«ã¡ãŸãã
ãã®çµ±åã¢ãããŒãã«ããããããã¡ã€ãªã³ã°ã®äžå®å®æ§ã«æãå¯äžãããã¬ãŒã ã¯ãŒã¯ã»ã°ã¡ã³ããæããã«ãªããŸãããã®æ å ±ãçµ±åããããšã§ãçµç¹ã¯ãã¬ãŒã ã¯ãŒã¯ã®å©äŸ¿æ§ãç¶æããªããããããã¹ã®ããã©ãŒãã³ã¹ãä¿è·ãããçãçµã£ã修埩æŠç¥ãçå®ã§ããŸãã
å¢çåé¢ãšç¹æ®ãªå®è¡ãã¹ã«ãããã¬ãŒã ã¯ãŒã¯ã®å€åæ§ã®äœæž
äžå®å®ãªãã¬ãŒã ã¯ãŒã¯ã»ã°ã¡ã³ããç¹å®ããããšãå¢çåé¢ãå®è¡å®å®åã®äž»ãªææ®µãšãªããŸããå¢çåé¢ãšã¯ãåçãªåäœãã«ãã»ã«åããããã©ãŒãã³ã¹ãéèŠãªé åãžã®æŒããé²ããæç¢ºã«å®çŸ©ãããã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããšã§ãããã®ã¢ãããŒãã¯ã 鲿ãããŒã®å®è·µäŸåé¢ä¿ãåç·šæããããšã§ã·ã¹ãã ã®è匱æ§ã軜æžãããŸãã
ããŒã ã¯ãããããã¹ããã¬ãŒã ã¯ãŒã¯ã®å€åæ§ãåé¿ããç¹æ®ãªå®è¡ãããŒã«ãªãã€ã¬ã¯ãããããšã§ãå¢çåé¢ãå®è£ ã§ããŸããäŸãšããŠã¯ãé«éãã¹ã«ãã¯ã¢ããããŒãã«ãéçã«çµç·ãããã€ã³ã¹ã¿ã³ã¹ãäºåæ€èšŒæžã¿ã®å®è¡ããããªã©ãæããããŸãããããã®ä»£æ¿ãã¹ã¯ãåçãããã·ãžã®äŸåã軜æžãããªãã¬ã¯ã·ã§ã³ãæé€ããã¢ãžã¥ãŒã«éã®äžå®å®æ§ããããã«ãŒãã«åœ±é¿ãäžããã®ãé²ããŸããåçãªåäœãç¶æããå¿ èŠãããå Žåã¯ããããã¡ã€ãªã³ã°ã®å®å®æ§ãããã»ã©éèŠã§ãªãå éšã«ãŒãã®å€åŽããŸãã¯ã·ã¹ãã å¢çã§åäœããããã«ããããšãã§ããŸãã
æçµçµæã¯ãJIT ãå®å®ããæšæž¬çä»®å®ã圢æã§ããäºæž¬å¯èœãªå®è¡ç°å¢ãšãªããæé©åè§£é€ã€ãã³ããåæžããã忣ã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ã®äžè²«æ§ãåäžããŸãã
éæé©åã€ãã³ããããªã¬ãŒããé«ãªã¹ã¯äŸåé¢ä¿ã®ãªãã¡ã¯ã¿ãªã³ã°
å€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ã¯ãJITæé©åã®å質ã«åœ±é¿ãäžããäŸåé¢ä¿ãèç©ããŸããäŸåé¢ä¿ã®äžã«ã¯ãæ¥éã«å€åããããåã®å€åããããããããæšæž¬ã«åºã¥ãä»®å®ãäžå®å®ã«ããåçãªåäœãåã蟌ãã ããããã®ããããŸãããŸããããã©ãŒãã³ã¹ã極ããŠéèŠãªè€æ°ã®ã¢ãžã¥ãŒã«ãå ±ææœè±¡åã«çµã³ä»ããåºç¯ãªçµåãçã¿åºããã®ãããã1ã€ã®ã³ã³ããŒãã³ãã®å°ããªå€æŽãã·ã¹ãã å šäœã®æé©åãããã³ãŒããç¡å¹ã«ããå¯èœæ§ãé«ãŸããŸãããããã®æ§é çãªãªã¹ã¯ã¯ãæ¬çš¿ã§æ€èšããããŒããåæ ããŠããŸãã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠã³ã³ããŒãã³ãã®é¢ä¿ãçè§£ããããšã¯ãå®è¡æã®é£éçãªåœ±é¿ãåé¿ããããã«äžå¯æ¬ ã§ããçµç¹ããªã¹ã¯ã®é«ãäŸåé¢ä¿ããªãã¡ã¯ã¿ãªã³ã°ããããšã§ãåäœå€æŽã®åœ±é¿ç¯å²ãçž®å°ããJITæé©åã®äºæž¬å¯èœæ§ãåäžããŸãã
å ±éãŠãŒãã£ãªãã£ã暪æçãªã€ã³ãã©ã¹ãã©ã¯ãã£å±€ãšããŠæ©èœããäŸåé¢ä¿ã¯ç¹ã«æ³šæãå¿ èŠã§ãããããã®äŸåé¢ä¿ã¯åºãå©çšããããããã€ã³ã©ã€ã³åŒã³åºããã§ãŒã³ã«åºçŸããé »åºŠãé«ããªããŸãããããã®äŸåé¢ä¿ãé »ç¹ã«é²åããããäžå®å®ãªããžãã¯ãå°å ¥ããããããšããããã¡ã€ãªã³ã°ã®äžå®å®æ§ãåŒãèµ·ãããããã¹ããããçºçããŸãããããã®ãªã¹ã¯ã¯ã å¶åŸ¡ãããŒã®æŽå¯æ§é çãªäžèŠåæ§ãå®è¡ãã¹å šäœã«æ³¢åããã±ãŒã¹ããããŸããããããäŸåé¢ä¿ããªãã¡ã¯ã¿ãªã³ã°ããã«ã¯ãããããããããã¹ã«ã©ã®ããã«é¢äžããŠããããç¹å®ããã·ã¹ãã å šäœã«åãŒãå€åæ§ãè©äŸ¡ããå¿ èŠããããŸãã
圱é¿äžå¿ã®åæã«ããé«ãªã¹ã¯äŸåé¢ä¿ã®æ€åº
JIT åäœãå®å®åããããã®æåã®ã¹ãããã¯ãã·ã¹ãã å šäœã®äžå®å®æ§ãåŒãèµ·ããäŸåé¢ä¿ãç¹å®ããããšã§ãã圱é¿äžå¿ã®åæã«ãããããŒã ã¯äŸåé¢ä¿ãã©ãã§äœ¿çšãããŠããããããããã¹ã«ã©ã®ãããé »ç¹ã«åºçŸãããããããŠãã®åäœããããã¡ã€ãªã³ã°ããŒã¿ã«ã©ã®ããã«åœ±é¿ãããã芳å¯ã§ããŸãããã®ææ³ã¯ãéçäŸåé¢ä¿ãããã³ã°ãšã©ã³ã¿ã€ã ãã¬ã¡ããªãçµã¿åãããJIT ã®æé©åè§£é€ãã©ãã§çºçãããããã³ãŒã«ã°ã©ãå šäœã«ã©ã®ããã«äŒæããããæããã«ããŸãã
é«ãªã¹ã¯ã®äŸåé¢ä¿ã«ã¯ãå ±æãŠãŒãã£ãªãã£ã©ã€ãã©ãªãåºç¯å²ã«åã¶ã¬ã¬ã·ãŒã¢ãžã¥ãŒã«ããããã¯é²è¡äžã®ã¢ããã€ãŒãŒã·ã§ã³ã«ãã£ãŠå°å ¥ãããåçã«é²åããã³ã³ããŒãã³ããªã©ãå«ãŸããŸãããããã®äŸåé¢ä¿ã¯ãåã®ã€ã³ãã¬ãåå²ã®äºæž¬äžå¯èœæ§ããããã¯ãããã·çæã«å¯äžããããšãå€ããããããæé©åè§£é€ã®ãªã¹ã¯ãé«ããŸãããããã®é¢ä¿ãç¹å®ããããšã¯ãæ¬çš¿ã§åŒ·èª¿ãããŠããäŸåé¢ä¿è¿œè·¡æŠç¥ãšäŒŒãŠããŸãã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ã1 ã€ã®ã¢ãžã¥ãŒã«ã®å€æŽãä»ã®å€ãã®ã¢ãžã¥ãŒã«ã«ã©ã®ããã«åœ±é¿ããããçè§£ããããšã®éèŠæ§ã匷調ããŠããŸãã
ããŒã ã¯ãJFRèšé²ãJITãã°ãæ§é è§£æçµæãçµã¿åãããããšã§ãéæé©åã€ãã³ãã§ç¹°ãè¿ãçºçããäŸåé¢ä¿ãç¹å®ã§ããŸããç¹å®ãããäŸåé¢ä¿ã¯ããããã¡ã€ãªã³ã°ç¹æ§ã®å®å®åãšç¡å¹åé »åºŠã®äœæžãç®çãšãããã¿ãŒã²ãããçµã£ããªãã¡ã¯ã¿ãªã³ã°äœæ¥ã®æååè£ãšãªããŸãã
ã€ã³ã¿ãŒãã§ãŒã¹ã®åå²ãšã¢ãžã¥ãŒã«å¢çã«ããäŸåé¢ä¿ã®äžå®å®æ§ã®äœæž
äŸåé¢ä¿ã¯ãè€æ°ã®åäœããŒã«ãæç€ºããããã»ãšãã©ã®ã³ã³ããã¹ãã§ã¯äœ¿çšãããªãå¹ åºãæ©èœããµããŒãããããããšãäžå®å®åãåŒãèµ·ãããŸããããã«ããããµãŒãã¹ãã¯ãŒã¯ããŒãããšã«ç°ãªãå®è¡ãã¿ãŒã³ãçããJITãä¿¡é Œæ§ã®é«ãæšæž¬çä»®å®ã圢æã§ããªããªããŸãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãããçããç®çã«ç¹åããæœè±¡åã«åå²ããããšã§ãäžå®å®æ§ãæå¶ããæé©åã®å®å®æ§ãåäžãããããšãã§ããŸãã
ã€ã³ã¿ãŒãã§ãŒã¹åå²ãšã¯ãåºç¯ãªå¥çŽãããå°ããªã³ã³ããã¹ãåºæã®å¥çŽã«åå²ããããšã§ããããã«ããããªã¹ã¯ã®é«ãå€åæ§ãããã©ãŒãã³ã¹ã®éèŠãªãã¹ããåé¢ãããŸãããã®ææ³ã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³æç¢ºãªå¢çã«ãã£ãŠåæ£ã¢ãŒããã¯ãã£éã®åäœãç°¡çŽ åãããã³ãŒãããŒã¹ãå®çŸããŸããããã®çµæãJITã確å®ã«å®è¡ããããã¡ã€ãªã³ã°ããæ©èœã®æ¡æ£ã«ããé »ç¹ãªç¡å¹åãªãã«ç©æ¥µçãªæé©åãé©çšã§ããã³ãŒãããŒã¹ãå®çŸããŸããã
ã¢ãžã¥ãŒã«å¢çã®çްååã«ãããåãæœè±¡åã倿ŽããããŒã ã®æ°ãæžããã€ã³ã¿ãŒãã§ãŒã¹ã®å€æŽã«äŒŽãæ··ä¹±ã®ãªã¹ã¯ã軜æžãããŸããããã«ãããããã©ãŒãã³ã¹ãéèŠãªã¢ãžã¥ãŒã«ã¯ãå®å®ããäºæž¬å¯èœãªã³ã³ããŒãã³ãã®ã¿ã«äŸåããããã«ãªããŸãã
å ±æãŠãŒãã£ãªãã£ã¢ãžã¥ãŒã«ã«ãããå®å®ååäœ
å ±æãŠãŒãã£ãªãã£ã¢ãžã¥ãŒã«ã¯ãæéã®çµéãšãšãã«å€ãã®è²¬ä»»ãèç©ããåŸåãããããããã°ãã°éæé©åã®åå ãšãªããŸãããã°ãŠãŒãã£ãªãã£ãæ€èšŒã©ã€ãã©ãªãæ§æããã»ããµãäºææ§ã¬ã€ã€ãŒã¯ãå€ãã®å Žåãæ®µéçã«æ©èœè¿œå ãããŸãããããã®è¿œå ã«ãããåå²ã®äžèŠåæ§ãäžå®å®ãªå®è¡ãã¹ãçããäžè²«ãããããã¡ã€ãªã³ã°ã劚ããããŸãããããã®ãŠãŒãã£ãªãã£ã¯ã¢ããªã±ãŒã·ã§ã³å šäœã«åºã䜿çšãããããããã®äžå®å®æ§ã¯ããã©ãŒãã³ã¹ã«åºç¯å²ã«åœ±é¿ãåãŒããŸãã
ããŒã ã¯ãå€åæ§ã®é«ãæ©èœãã³ã¢æäœããåé¢ããããšã§ããããã®ãŠãŒãã£ãªãã£ãå®å®åã§ããŸããäžè¬çãªæŠç¥ã®äžã€ãšããŠããŠãŒãã£ãªãã£ãå®å®ããé«éãã¹ãšæ©èœè±å¯ãªäœéãã¹ã«åå²ããããšãæããããŸããå®å®ããé«éãã¹ã¯ãåå²ãåã®å¯å€æ§ãåçãªåäœãæå°éã«æããããŠãããããã€ã³ã©ã€ã³å±éãç©æ¥µçãªæé©åã«é©ããŠããŸããäœéãã¹ã¯ããªãã·ã§ã³ãŸãã¯é »åºŠã®äœãã·ããªãªãåŠçããããã©ãŒãã³ã¹ãéèŠãšãªããããŒã®å€åŽã«æ®ãããŸãã
ãã®åç·šã¯ã è¿ä»£åããŒã«ã®æŠèŠã¯ãäºæž¬å¯èœæ§ãç¶æããããã«è€éãªåäœãåé¢ããããšã«éç¹ã眮ããŠããŸããå ±æãŠãŒãã£ãªãã£ãå®å®ãäºæž¬å¯èœã§ããããšãä¿èšŒããããšã§ãçµç¹ã¯åºç¯å²ã«ãããæé©åã®éžè±ã®ãªã¹ã¯ã軜æžããå®åžžç¶æ ã®ããã©ãŒãã³ã¹ãåäžãããŸãã
æ§é ãªãã¡ã¯ã¿ãªã³ã°ã䜿çšããŠã¢ãžã¥ãŒã«éã®ççºååŸãæå°åãã
äŸåé¢ä¿ã®å€æŽã«ãã圱é¿ç¯å²ã¯ããã®åœ±é¿ãã³ãŒãããŒã¹å šäœã«ã©ã®çšåºŠæ³¢åãããã衚ããŸãã圱é¿ç¯å²ã®å€§ããäŸåé¢ä¿ã¯ãéåžžãã³ãŒã«ã°ã©ãã®äžå€®ã«äœçœ®ããããè€æ°ã®ã¢ãžã¥ãŒã«ãžã®ãšã³ããªãã€ã³ããšããŠæ©èœããŸãããããã®äŸåé¢ä¿ã倿Žããããšã倿°ã®ã€ã³ã©ã€ã³ãã§ãŒã³ã«ããããããã¡ã€ãªã³ã°ã®åæãç¡å¹ã«ãªããã·ã¹ãã å šäœã«ãããæé©åè§£é€ã®é£éãåŒãèµ·ãããŸãã
æ§é ãªãã¡ã¯ã¿ãªã³ã°ã¯ãäŸåé¢ä¿ã®æŽçãäžå®å®ãªã³ã³ããŒãã³ããšå®å®ããã³ã³ããŒãã³ãã®åé¢ãã¢ãžã¥ãŒã«ã®æææš©ã®èª¿æŽã«ãã£ãŠããã®åœ±é¿ç¯å²ãå€§å¹ ã«çž®å°ããããšãã§ããŸããå ·äœçãªææ³ãšããŠã¯ãç¹æ®ãªã€ã³ã¿ãŒãã§ãŒã¹ã®æœåºãåçãªåäœãããããã¹ããåé¢ããããšãæ©èœçãªå©äŸ¿æ§ã§ã¯ãªãå®éã®å®è¡é »åºŠãåæ ããäŸåé¢ä¿éå±€ã®åèšèšãªã©ãæããããŸãã
ãããã®å€æŽã¯ã 鲿ãããŒã®å®è·µå¢çã®åç·šæã«ãã£ãŠã·ã¹ãã ã®è匱æ§ã軜æžãããŸããäŸåé¢ä¿ã®æ§é ãæ©èœç圹å²ã ãã§ãªãããã©ãŒãã³ã¹ããŒãºã«ãåèŽãããšãã·ã¹ãã ã¯é£éçãªæé©åè§£é€ã€ãã³ãã«å¯Ÿããèæ§ãå€§å¹ ã«åäžããŸãã
ã¯ã©ã¹ããŒããŒã®æçåãæå°éã«æã㊠JIT ã®äºæž¬äžå¯èœæ§ãäœæžãã
ã¯ã©ã¹ããŒããŒæ§é ã¯ãJVMãæšæž¬çãªä»®å®ãã©ã®ããã«åœ¢æãé©çšãããã«ãããŠäžå¿çãªåœ¹å²ãæãããŸããå€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§ã¯ãã¢ãžã¥ãŒã«åããã©ã°ã€ã³ã¢ãŒããã¯ãã£ãã³ã³ããåãããç°å¢ããã¬ãŒã ã¯ãŒã¯é§ååã®ã³ã³ããŒãã³ãé ç·ãªã©ã«ãããã¯ã©ã¹ããŒããŒã®æ°ãå¢å ããŸããåã¯ã©ã¹ããŒããŒã¯åå¥ã®åå空éãäœæããåãã¯ã©ã¹ãã€ã³ã¿ãŒãã§ãŒã¹ããŸãã¯ãããã·ã®è€æ°ã®ããŒãžã§ã³ãåæã«ååšããããšããããããŸãããã®æçåã¯äžèŠãªåã®å€æ§æ§ãããããããããã¡ã€ãªã³ã°ã®å®å®æ§ãæãªããJITã®æ±ºå®ãæ··ä¹±ãããŸãããããã®åœ±é¿ã¯ã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠæ§é ã®è€éãã«ãã£ãŠãå®è¡æã®åäœã«åœ±é¿ãäžããé¢ä¿æ§ãé ããŠããŸãããšããããŸããã¯ã©ã¹ããŒããŒã®æçåãé²ããšãJITã³ã³ãã€ã©ã¯ææ§ãªãããã¡ã€ãªã³ã°ããŒã¿ãåãåããã¢ããªã±ãŒã·ã§ã³å šäœã§éæé©åã®é »åºŠãå¢å ããŸãã
ã¯ã©ã¹ããŒããŒã®æçåã¯ãã€ã³ã©ã€ã³å±éãéå±€åã³ã³ãã€ã«ããšã¹ã±ãŒãè§£æããããŠéšåè©äŸ¡ãªã©ã®ææ©çæé©åãè€éåãããŸããåäžã®ã¯ã©ã¹ãç°ãªãããŒããŒã«åºçŸããå Žåãã³ã³ãã€ã©ã¯ããããç¡é¢ä¿ãªåãšããŠæ±ããåã·ã°ããã£ãèšåŒµãããäžèŠã¢ãã¢ãŒãã£ãã¯ãªãµã€ããããªã¢ãŒãã£ãã¯ãŸãã¯ã¡ã¬ã¢ãŒãã£ãã¯ãªãµã€ããžãšåŽ©å£ãããŠããŸããŸãããã®äžæŽåã¯ãç¹ã«äŸåæ§æ³šå ¥ããã©ã°ã€ã³ã·ã¹ãã ãOSGiã¢ãžã¥ãŒã«ããããã¯é«åºŠã«åçãªãã€ã¯ããµãŒãã¹ãã¬ãŒã ã¯ãŒã¯ã䜿çšããç°å¢ã§ã¯ãäžå®å®ãªæé©åãã¥ãŒãªã¹ãã£ãã¯ã«ã€ãªãããŸãããããã®æ§é çãªäžæŽåã¯ã å¶åŸ¡ãããŒã®æŽå¯è€åçãªå€åã«ããäžè²«ããæé©åãæãªãããŸãã
ã¯ã©ã¹ããŒããŒãšã¿ã€ããããã¡ã€ã«ã®çžé¢é¢ä¿ã«ããæçåã®ç¹å®
ã¯ã©ã¹ããŒããŒã®æçåã軜æžããããã®æåã®ã¹ãããã¯ãåé·ãŸãã¯ç«¶åããã¯ã©ã¹å®çŸ©ã®çºçæºãç¹å®ããããšã§ããå€ãã®ã·ã¹ãã ã§ã¯ãæ§æã®äžäžèŽããã«ãã¢ãŒãã£ãã¡ã¯ãã®äžè²«æ§ã®æ¬ åŠããããã¯äŸåé¢ä¿ã®ã·ã§ãŒãã£ã³ã°æ¹æ³ãªã©ã«ãã£ãŠãã¯ã©ã¹ã®éè€ãæå³ããçºçããŸãããããã®éè€ãç°ãªãã¯ã©ã¹ããŒããŒã§ããŒãããããšãåŒã³åºããµã€ãã§ã®åå¯åºŠãäžæããJITåŠçã«æ··ä¹±ãçããŸãã
çžé¢é¢ä¿ãåæããã«ã¯ãã¯ã©ã¹ããŒããŒéå±€ãåãããã¡ã€ã«ãJFRã¯ã©ã¹ããŒãã£ã³ã°ã€ãã³ãã調ã¹ãå¿ èŠããããŸããã¯ã©ã¹ããŒããŒIDãšåã®äœ¿çšãã¿ãŒã³ãæ¯èŒããããšã§ãã©ã®ã¢ãžã¥ãŒã«ãŸãã¯ãã¬ãŒã ã¯ãŒã¯ãåé·ãªã¯ã©ã¹ãå°å ¥ããŠããããç¹å®ã§ããŸãããã®åæã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãäŸåé¢ä¿ããããã³ã°ãããšãé ããå®è¡åäœãæããã«ãªããŸãã
æçåãç¹å®ãããã°ãã¯ã©ã¹ããŒããŒã®çµ±åãäŸåé¢ä¿ã®ã·ã§ãŒãã£ã³ã°ä¿®æ£ãåé·ãªjarããªã¢ã³ãã®åé€ãªã©ã«ãã£ãŠãçµç¹ã¯æçåã«å¯ŸåŠããããšãã§ããŸããã¯ã©ã¹ããŒããŒã®å¢çæ°ãæžããããšã§ããããã¡ã€ãªã³ã°ã®å¿ å®åºŠãåäžããæšæž¬ã«åºã¥ãä»®å®ã«å¯ŸããJITã®ä¿¡é Œæ§ãå埩ããŸãã
ã¯ã©ã¹ããŒããŒãçµ±åããŠåã®çžéãæå°éã«æãã
å€ãã®ãšã³ã¿ãŒãã©ã€ãºãã¬ãŒã ã¯ãŒã¯ã¯ãã¢ãžã¥ãŒã«ããã©ã°ã€ã³ããŸãã¯ããã³ãåºæã®ã³ã³ããŒãã³ãå°çšã®ã¯ã©ã¹ããŒããŒãäœæããŸããããã«ããæ©èœã®åé¢ãå®çŸãããäžæ¹ã§ãã·ã¹ãã å šäœã§åã·ã°ããã£ãéè€ããããšã«ãªããŸãããããã®ã¯ã©ã¹ããŒããŒãçµ±åããããšã§ãå·®ç°ã軜æžããããããã¡ã€ãªã³ã°ããŒã¿ãç°¡çŽ åãããŸãããã®çµ±åã«ã¯ããã©ã°ã€ã³ã¢ãŒããã¯ãã£ã®èª¿æŽãã¢ãžã¥ãŒã«ã®ããŒãã®äžå åãã³ã³ããã¬ãã«ã®ã¯ã©ã¹ããŒããŒéå±€ã®åæ§æãªã©ãå«ãŸããå ŽåããããŸãã
ã¯ã©ã¹ããŒããŒã®çµ±åã¯ãè€æ°ã®ã¢ãžã¥ãŒã«ãåäžãŸãã¯ã»ãŒåäžã®å ±æã©ã€ãã©ãªã«äŸåããŠããå Žåã«ç¹ã«å¹æçã§ãããããã®ã©ã€ãã©ãªãçµ±äžãããã¯ã©ã¹ããŒããŒã§ããŒãããããšã§ãã·ã¹ãã ã¯åã®ã€ã³ãã¬ãæããã¢ãã¢ãŒãã£ãã¯ãªåŒã³åºããµã€ãã®å¯èœæ§ãé«ããŸããããã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³ããæç¢ºãªæ§é å¢çã«ããã·ã¹ãã ã®äºæž¬å¯èœæ§ãåäžããŸãã
ãã ããçµ±åã¯æŠç¥çã«é©çšããå¿ èŠããããŸããäžéšã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãç«¶åããããŒãžã§ã³ãåé¢ããããã«åå¥ã®ã¯ã©ã¹ããŒããŒã䜿çšããŠããŸããããŒã ã¯ãç¹ã«éèŠãªå®è¡ãã¹ãæé©åããéã«ã¯ãæ©èœã®åé¢ãšããã©ãŒãã³ã¹ã®äžè²«æ§ãæ éã«æ€èšããå¿ èŠããããŸãã
ããã©ãŒãã³ã¹ãéèŠãªé åã§ã®åçã¯ã©ã¹ããŒããŒã®äœæã鲿¢ãã
åçãŸãã¯ã¢ãããã¯ãªã¯ã©ã¹ããŒããŒã®äœæã¯ãã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«ããŒããã«ã¹ã¿ã ã¹ã¯ãªãããšã³ãžã³ããŸãã¯åçãªããžãã¹ããžãã¯ã«äŸåããã·ã¹ãã ã«ãããŠãæçåã®äž»ãªåå ãšãªããŸãããªã¯ãšã¹ãåŠçäžã«ã¯ã©ã¹ããŒããŒãäœæãããšãäºæž¬ã§ããªãåã®å€æ§æ§ãšã¯ã©ã¹ããŒãã€ãã³ããçºçããJITæé©åãäžå®å®ã«ãªããŸãããããã®æ £è¡ã¯ãã¬ã¬ã·ãŒãªæ¡åŒµãã¿ãŒã³ãåçæ§æã¡ã«ããºã ã«èµ·å ããŠããå¯èœæ§ããããŸãã
åçãªã¯ã©ã¹ããŒããŒã®äœæãé²ãã«ã¯ãåçãªåäœãå¶åŸ¡ãããã·ã¹ãã å¢çã«ãªãã€ã¬ã¯ãããå¿ èŠããããŸããããã«ã¯ãèµ·åæã«ã¢ãžã¥ãŒã«ãããªããŒããããã¯ã©ã¹ããŒããŒããã£ãã·ã¥ãããåçã¹ã¯ãªããã®è©äŸ¡ãã³ã³ãã€ã«æžã¿ãã³ãã¬ãŒããäºåã«çæãããã¯ã©ã¹ã«çœ®ãæãããªã©ãå«ãŸããŸãããããã®æ¹åã¯ã è¿ä»£åããŒã«ã®æŠèŠæ§é ã®æ¹è¯ã«ããå®è¡æã®å®å®æ§ãåäžããŸãã
å®è¡äžã«ã¯ã©ã¹ ããŒããŒãéçã®ãŸãŸã§ããããšãä¿èšŒããããšã«ãããçµç¹ã¯ã¯ã©ã¹å®çŸ©ã®å€åæ§ãæžãããJIT ã®äžè²«æ§ãåäžãããŸãã
ã¢ãžã¥ãŒã«ã®ãªãã¡ã¯ã¿ãªã³ã°ãšäŸåé¢ä¿ã®å調æŽã«ããæçåã®åæž
ã¯ã©ã¹ããŒããŒã®æçåã¯ãå€ãã®å Žåãå®éã®å®è¡ãã¿ãŒã³ãåæ ããŠããªãã¢ãžã¥ãŒã«å¢çã«èµ·å ããŸããã¢ãžã¥ãŒã«ãè«ççã«åé¢ãããŠããã«ãããããããå®è¡æã«é »ç¹ã«çžäºäœçšããå Žåãã¯ã©ã¹ããŒããŒã®åé¢ã«ãã£ãŠåã°ã©ãã®ç«¶åãçºçããŸãããã®äžäžèŽã«ããã倿 çãªåŒã³åºããµã€ããçºçããå¯èœæ§ãé«ãŸããã³ã³ãã€ã©ã®å¹ççãªæé©åèœåãäœäžããŸãã
ã¢ãžã¥ãŒã«ã®ãªãã¡ã¯ã¿ãªã³ã°ã¯ãäŸåé¢ä¿ãå®è¡ãããŒã«åãããŠå調æŽããŸããããŒã ã¯ã¢ãžã¥ãŒã«ã®éå±€åã調æŽããããå ±æããžãã¯ãå®å®ããã³ã¢ã©ã€ãã©ãªã«åé 眮ããããã¢ãžã¥ãŒã«éã§äŸåé¢ä¿ã®ããŒãžã§ã³ãçµ±äžãããã§ããŸãããããã®åãçµã¿ã¯ã 鲿ãããŒã®å®è·µå¢çãåç·šæããããšã§ã·ã¹ãã ã®è匱æ§ã軜æžãããå®è¡ãã¹ãæç¢ºã«ãªããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã¯ãã¯ã©ã¹ããŒããŒã®é·ç§»é »åºŠãæžãããåã®åå²ãé²ããé »ç¹ã«åŒã³åºãããã³ã³ããŒãã³ãã®å®çŸ©ã®äžè²«æ§ã確ä¿ããŸãããã®çµæãJITææ©çæé©åã®èä¹ æ§ãåäžããã·ã¹ãã å šäœã§éæé©åã€ãã³ãã®é »åºŠãæžå°ããŸãã
åå²ãšããŒã¿ãããŒã®äžå®å®æ§ãäœæžããŠå®å®ããããããã¹ãæ§ç¯ãã
å®å®ããããããã¹ã¯ãäºæž¬å¯èœãªå¶åŸ¡ãããŒãšäžè²«ããããŒã¿ãããŒç¹æ§ã«äŸåããŸããJITã³ã³ãã€ã©ã¯ãå®è¡ãã¿ãŒã³ãå®å®ããåå²çµæãçãååžã«åŸãå Žåã«æã广çã«æé©åãããŸããããããå€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæ©èœãã©ã°ãæ§æãœãŒã¹ãæ¡ä»¶ä»ãæ€èšŒãã¯ãŒã¯ããŒãäŸåã®åäœãªã©ã«ãã£ãŠãåå²ã®å€åãé »ç¹ã«çºçããŸãããããã®å€åã¯ãããã¡ã€ãªã³ã°ã®å®å®æ§ãæãªããæšæž¬ã«åºã¥ãä»®å®ã匱ããŸãããã®äºæž¬äžå¯èœæ§ã¯ãåè¿°ã®æ§é çãªèª²é¡ã«äŒŒãŠããŸãã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠåŸ®åŠã§åæ£ããé¢ä¿æ§ããã¹ãã¬ã¹äžã§ã®ã·ã¹ãã ã®åäœã«åœ±é¿ãäžããŸããããããã¹ã§äžè²«æ§ã®ãªãåå²ãäžèŠåãªããŒã¿ãããŒãçºçãããšãæé©åã®éžè±ãçºçããå¯èœæ§ãã¯ããã«é«ããªããŸãã
ããŒã¿ãããŒã®å€åæ§ã¯ãç¶æ³ãããã«è€éã«ããŸãããã€ããŒãã®åœ¢ç¶ããªããžã§ã¯ãã®ã©ã€ããµã€ã¯ã«ããŸãã¯ããŒã¿ã«ãŒãã£ã³ã°ã®éãã«ãããJITã¯å®éã®ã¯ãŒã¯ããŒãã§ã¯å€±æããå¯èœæ§ã®ããã¬ãŒããçæããŸããJVMã³ã³ãã€ã©ã¯ãå®å®ããå²ãåœãŠãã¿ãŒã³ãäºæž¬å¯èœãªãªããžã§ã¯ãã®åœ¢ç¶ããããŠäžè²«ãããã£ãŒã«ãã¢ã¯ã»ã¹åäœã«äŸåããããšããããããŸããããããäºæž¬äžå¯èœãªåœ¢ã§å€åãããšãæé©åããããã¬ãŒã ã¯ç¡å¹ã«ãªããJITã¯ã€ã³ã¿ãŒããªã¿å®è¡ãŸãã¯äžäœå±€å®è¡ã«ãã©ãŒã«ããã¯ããŸãããããã®ãã€ããã¯ã¹ã¯ã å¶åŸ¡ãããŒã®æŽå¯å¯å€å ¥åãæé©åã®æ©äŒãæãªããšããåé¡ããããŸãããã®å€åæ§ãäœæžããããšã§ãããããã¹ã®äºæž¬å¯èœæ§ãç¶æãããææ©çæé©åã®èä¹ æ§ãåäžããŸãã
ç°ãªãã¯ãŒã¯ããŒãã§å€åãããã©ã³ããããã¹ãããã®æ€åº
åå²ãããã¹ãããã¯ãå ¥åããŒã¿ããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ããŸãã¯åäœã¢ãŒãã«å¿ããŠåå²åäœãå€åããå Žåã«çºçããŸããäŸãã°ããã£ãŒãã£ãŒãã°ã«ã«ãã£ãŠæ°ããã³ãŒããã¹ãå°å ¥ãããããã«ãŒãã£ã³ã°ããžãã¯ã顧客屿§ã«ãã£ãŠå€åããããããŒã¯è² è·æã«ãªãã·ã§ã³æ¡ä»¶ãæ¯é çã«ãªã£ããããå ŽåããããŸãããããã®ãã¿ãŒã³ã¯ãJITã«ããåå²äºæž¬ãšå®è¡å¯èœæ§ã®çè§£ãäžå®å®ã«ããŸãã
æ€åºã«ã¯ãåæãã¹ãã§ã¯ãªããçŸå®çãªæ¬çªç°å¢ã«ãããåå²ååžã®ç£èŠãå¿ èŠã§ããããŒã ã¯ãJFRèšé²ãå¶åŸ¡ãããŒã°ã©ããå®è¡ãã¬ãŒã¹ãåæããŠãå岿±ºå®ãæéãšãšãã«ã©ã®ããã«å€åããããç¹å®ã§ããŸããããã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãäžæµãšäžæµãžã®åœ±é¿ãçè§£ããããšãéèŠã§ããç¹å®ãããäžå®å®ãªãã©ã³ãã¯ãåç·šæãæœåºããŸãã¯åé¢ããããšã§ãããããã¹ãäºæž¬äžå¯èœãªåäœããä¿è·ããããšãã§ããŸãã
å®éã®ãªãã¡ã¯ã¿ãªã³ã°ã§ã¯ãæ¡ä»¶ãããã¯ã®åå²ãåçåå²ãåé¿ããé«éãã¹ããžãã¯ã®å°å ¥ããããã¯ã¢ãŒãäŸåã®åäœãå®å®ããæœè±¡åã®èåŸã«åé¢ããããšãªã©ãé »ç¹ã«è¡ãããŸãããããã®èª¿æŽã«ãããããããã¹ãäžè²«ããåå²ãããã¡ã€ã«ã瀺ãããã«ãªããæé©åè§£é€ã®ããªã¬ãŒãæžå°ããŸãã
å ¥åã®æ£èŠåãšãªããžã§ã¯ã圢ç¶ã®å€åã®äœæžã«ããããŒã¿ãããŒã®å®å®å
ããŒã¿ãããŒã®äžå®å®æ§ã¯ãå€ãã®å Žåããªããžã§ã¯ãã®åœ¢ç¶ããã€ããŒãæ§é ããŸãã¯ããŒã¿ã«ãŒãã£ã³ã°ã®äžæŽåã«èµ·å ããŸããJVMããã£ãŒã«ãå¯åºŠãã¬ã€ã¢ãŠããå€åãããªããžã§ã¯ãã«ééãããšãã€ã³ã©ã€ã³ãã£ãã·ã¥ããã£ãŒã«ãã¢ã¯ã»ã¹ã®ç¹æ®åãšãã£ãææ©çãªæé©åãæ©èœããªããªããŸãããããã®æ©èœäžå šã¯ãç¹ã«è€éãªã·ãªã¢ã«åãã€ãã©ã€ã³ãç°çš®ããŒã¿åœ¢åŒãæã€ã·ã¹ãã ã«ãããŠãç¹°ãè¿ãã®åã³ã³ãã€ã«ã«ã€ãªãããŸãã
ããŒã¿ãããŒã®å®å®åã¯ãå ¥åããŒã¿ã®æ£èŠåãšãªããžã§ã¯ãçæã®å¹çåããå§ãŸããŸããããŒã ã¯ãæšæºçãªããŒã¿æ§é ãå°å ¥ãããããªããžã§ã¯ãããŒã«ãåå©çšããããé »ç¹ã«äœ¿çšããããªããžã§ã¯ã圢ç¶ãäºåã«å²ãåœãŠããããããšãã§ããŸãããããã®æŠç¥ã¯ãç¹æ®åã®å€±æãæžãããã³ã³ãã€ã©ããã£ãŒã«ãã¢ã¯ã»ã¹ã«é¢ããå®å®ããæåŸ ãç¶æããã®ã«åœ¹ç«ã¡ãŸãããã®ã¢ãããŒãã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³äºæž¬å¯èœãªããŒã¿ç§»åã«ãããéçšã®å®å®æ§ã確ä¿ãããŸãã
ããŒã¿ãããŒã®å€åæ§ãäœæžããã«ã¯ãåçããŒã¿è§£æã®å¶éãæ¡ä»¶ä»ããªããžã§ã¯ãæ§ç¯ã®æå°åããããŠå¯èœãªéãäºåæ€èšŒæžã¿ã®ãã€ããŒãã®å©çšãå¿ èŠã§ãããããã®æ¹è¯ã«ãããJITã®ä»®å®ãå®å®ããæé©åããããã¬ãŒã ã®å¯¿åœãå»¶ã³ãŸãã
æ¡ä»¶æã®èåŸã«é ããããã©ãŒãã³ã¹ã«é倧ãªåœ±é¿ãäžããäœéãã¹ã®æé€
äœéãã¹ã¯ããã°ãã°çºçé »åºŠã®äœãæ¡ä»¶ãããã¯ã®èåŸã«é ããŠããŸããéåžžã®åäœã§ã¯ã»ãšãã©çºçããªããããããŸããããééãããšä»®å®ãç¡å¹ã«ããŸããããããã¹ã«çºçé »åºŠã¯äœããã®ã®è€éãªäœéãã¹ã1ã€ã§ãå«ãŸããŠããå ŽåãJITã¯ãããèæ ®ããŠä¿å®çãªã¬ãŒããçæããå¿ èŠããããŸãããããã¯ã·ã§ã³äžã«äœéãã¹ãã¢ã¯ãã£ãã«ãªããšããããã®ã¬ãŒãã¯æ©èœããã匷å¶çã«æé©åè§£é€ãè¡ãããŸãã
ããŒã ã¯ããããã®ã¹ããŒãã¹ã®å±éºæ§ãç¹å®ããããã©ãŒãã³ã¹ãéèŠãªã³ã¢ããåé¢ããããšã§é€å»ããå¿ èŠããããŸããéçè§£æã§ã¯ããããã«ãŒãå ã«ãã¹ããããæ¡ä»¶ä»ãããžãã¯ãæããã«ããããšãã§ããå®è¡æãããã¡ã€ãªã³ã°ã§ã¯ãç°ãªãã¯ãŒã¯ããŒãã§ã©ã®ã¹ããŒãã¹ãã¢ã¯ãã£ãã«ãªããã瀺ããŸãããã®è€åçãªèŠç¹ã¯ãã·ã¹ãã å šäœã®æŽå¯ãšå¯æ¥ã«äžèŽããŠããŸãã è¿ä»£åããŒã«ã®æŠèŠã·ã¹ãã å šäœã®å£åãé¿ããããã«ãã¬ã¬ã·ãŒåäœãåé¢ããå¿ èŠããããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãå€ãã®å Žåãäœéãã¹ãå€éšãã³ãã©ã«æœåºããããé«éãã¹ã®ãã€ãã¹ãå°å ¥ããããæ©èœããžãã¯ãåæ§æãããããããšãå«ãŸããŸããäžè¬çãªã·ããªãªã«ãããŠãããããã¹ã®ã¿ãã¢ã¯ãã£ãã®ãŸãŸã§ããã°ãææ©çæé©åã®èä¹ æ§ã¯é«ãŸããŸãã
æ§é ã®ç°¡çŽ åã«ããããããã¹ã®äºæž¬å¯èœæ§ã®ç¶æ
æ§é ã®ç°¡çŽ åã«ãããããããã¹ãæéã®çµéãšãšãã«å®å®ããŸããããã«ã¯ãããã©ãŒãã³ã¹ãéèŠãªé ååšèŸºã®è€éãã®åæžãã«ãŒãã®ç°¡çŽ åãããžãã¯ã®çµ±åããããŠäžç¢ºå®æ§ããããã鿥局ã®åé€ãå«ãŸããŸããJITã³ã³ãã€ã©ã¯ãã³ãŒã«ã°ã©ããšå岿§é ãã³ã³ãã¯ãã§äžè²«æ§ãããå Žåã«æé«ã®ããã©ãŒãã³ã¹ãçºæ®ããŸãã
ç°¡çŽ åã«ãããä»®å®ã厩ããå¯èœæ§ã®ããç¹ã®æ°ãæžããéæé©åã€ãã³ãã®ãªã¹ã¯é¢ãçž®å°ãããŸãããã®ææ³ã®é©çšã¯ãåè¿°ã®å¢çç²Ÿç·»åææ³ãåæ ããŠããŸãã 鲿ãããŒã®å®è·µã·ã¹ãã ã³ã³ããŒãã³ãã®åç·šæã«ãã£ãŠä¿¡é Œæ§ãåäžããŸããããããã¹ã«å«ãŸããæ§é äžã®æ³å®å€ã®èŠçŽ ãå°ãªãã»ã©ãJITã®ãããã¡ã€ãªã³ã°ããŒã¿ã¯ã³ãŒãé²åãµã€ã¯ã«å šäœã«ããã£ãŠæ£ç¢ºãã€æç¶çã«ç¶æãããŸãã
å埩çãªç°¡çŽ åãéããŠãçµç¹ã¯æ©èœãé²åããŠãå®å®ããããããã¹ãæ§ç¯ã§ããŸããåå²ãšããŒã¿ãããŒã®å€åæ§ãäœæžããããšã§ãææ©çãªéå®³ã®æžå°ãå®åžžç¶æ ã®ããã©ãŒãã³ã¹åäžã忣ã¯ãŒã¯ããŒãå šäœã®äºæž¬å¯èœæ§ã®åäžãå®çŸããŸãã
äŸåæ§ãèæ ®ãããªãã¡ã¯ã¿ãªã³ã°ã«ããé·æçãªæé©åã®å®è£
é·æã«ãããæé©åã¯ãJVMãé·æéã«ããã£ãŠå®å®ããæ§é ãšåäœãã¿ãŒã³ãç¶æã§ããå Žåã«æåããŸããããããå€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§ã¯ãç¶ç¶çãªéçºã«ãã£ãŠé »ç¹ã«å€æŽãçºçãããããã®åæã厩ããããšããããŸãã軜埮ãªãªãã¡ã¯ã¿ãªã³ã°ãäŸåé¢ä¿ã®å€æŽã§ãããæé©åç¶æ ãç¡å¹ã«ãªããJITãã³ã³ãã€ã«æžã¿ã®ãã¬ãŒã ãç Žæ£ããŠåæãã€ãã©ã€ã³ãåèµ·åããåå ãšãªãå¯èœæ§ããããŸãããããã®æ··ä¹±ã¯ãåè¿°ã®ã·ã¹ãã ã¬ãã«ã®è€éããåæ ããŠããŸãã ãœãããŠã§ã¢ã€ã³ããªãžã§ã³ã¹ã®æŠèŠçžäºæ¥ç¶ãããã³ã³ããŒãã³ãã®é²åé床ãç°ãªãå ŽåãäŸåé¢ä¿ãèæ ®ãããªãã¡ã¯ã¿ãªã³ã°ã«ãããã³ãŒãããŒã¹å šäœãžã®å€æŽã®äŒæãå¶åŸ¡ããããšã§ãã¢ãŒããã¯ãã£ã®å€æŽãJITæé©åãäžå®å®åãããã®ã§ã¯ãªãã匷åããããšãä¿èšŒããŸãã
å€ãã®ã·ã¹ãã ã¯ãè€æ°ã®ã¢ãžã¥ãŒã«ãããŒã ã«ãŸãããé ããäŸåé¢ä¿ã®é£éãèç©ããŠããŸãããããã®äŸåé¢ä¿ã調æŽãªãã«é²åãããšãå®è¡ãã¹éã§äžè²«æ§ã®ãªãåäœãåã®å€åãçããŸããããããå€åã¯ãåå²äºæž¬ãã€ã³ã©ã€ã³å±éã®å®å®æ§ããããŠãããã¡ã€ãªã³ã°ã®ç²ŸåºŠãæãªããŸããçµæãšããŠçããããã©ãŒãã³ã¹ã®äœäžã¯ãåè¿°ã®äºæž¬äžå¯èœãªãã¿ãŒã³ã«äŒŒãŠããŸãã å¶åŸ¡ãããŒã®æŽå¯åå²ãæ§é ã®å€åã«ãã£ãŠå®è¡æã®æ³å®ãæãªãããããšããããŸããäŸåé¢ä¿ãèæ ®ãããªãã¡ã¯ã¿ãªã³ã°ã¯ãããããäžæŽåã軜æžããããšã«éç¹ã眮ãããªãªãŒã¹éã§æé©åãããããã©ãŒãã³ã¹ãç¶æããäºæž¬å¯èœãªå®è¡ç°å¢ãæ§ç¯ããŸãã
äŸåé¢ä¿ãããã³ã°ã䜿çšããŠé·æçãªæé©åã®éå£ãç¹å®ãã
é·æçãªæé©åãç¶æããããã®ç¬¬äžæ©ã¯ãæé©åã®èä¹ æ§ãé»å®³ããäŸåé¢ä¿ãç¹å®ããããšã§ããããããäŸåé¢ä¿ã®å€ãã¯ãã³ãŒãã¬ãã¥ãŒæã«ã¯ç¡å®³ã«èŠããŸãããå®è¡æã«ã¯äžå®å®ãããããããŸããããã«ã¯ãã¢ãžã¥ãŒã«éãŠãŒãã£ãªãã£ãé »ç¹ã«å€æŽãããã€ã³ã¿ãŒãã§ãŒã¹ãåçã«ãŒãã£ã³ã°å±€ãäºæž¬äžå¯èœãªåŒã³åºãæ§é ãçæãããã¬ãŒã ã¯ãŒã¯ãªã©ãå«ãŸããŸãã
äŸåé¢ä¿ãããã³ã°ã¯ãã©ã®ã¢ãžã¥ãŒã«ãããã©ãŒãã³ã¹ã®ã¯ãªãã£ã«ã«ãã¹ã«åœ±é¿ãäžãã倿Žãã©ã®çšåºŠæ·±ãäŒæããããããŒã ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãããã®åæã¯ã ã³ãŒããã¬ãŒãµããªãã£ã¬ã€ãäžæµãšäžæµã®åäœã®å¯èŠæ§ã¯äžå¯æ¬ ã§ããã©ã®äŸåé¢ä¿ãæãé »ç¹ã«ãæé©åãåŒãèµ·ããããç¹å®ããããšã§ãããŒã ã¯å®å®åã®åãçµã¿ãåªå ããæé©åãããé·æéã«ããã£ãŠæå¹ã§ããããšãä¿èšŒã§ããŸãã
ãããã³ã°ã«ãããäžå®å®ãªã³ã³ããŒãã³ããåé¢ããããéå±€åãããããžãã¯ãåç·šæãããããããã¡ã€ãªã³ã°ãã¿ãŒã³ãç¹°ãè¿ã倿Žããåäœãçµ±åãããããæ©äŒãæããã«ãªããŸãããããã®æŽå¯ã¯ãæé©åã®ã¬ãžãªãšã³ã¹ïŒå埩åïŒãé«ããæ§é çãªæ¹åãžãšã¢ãŒããã¯ããå°ããŸãã
é »ç¹ãªãªãã¡ã¯ã¿ãªã³ã°ããããããã¹ãä¿è·ããããã®å®å®ããã€ã³ã¿ãŒãã§ãŒã¹ã®äœæ
å ±æã€ã³ã¿ãŒãã§ãŒã¹ã®é »ç¹ãªå€æŽã¯ãéæé©åã«ã¹ã±ãŒãã®äž»ãªåå ã§ããããããã¹ã§äœ¿çšãããã€ã³ã¿ãŒãã§ãŒã¹ãé²åãããšãããããªèª¿æŽã§ãããæé©åãããã³ãŒãã«åã蟌ãŸããæšæž¬çãªä»®å®ãç¡å¹ã«ããå¯èœæ§ããããŸãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®å®åããããšã§ãã·ã¹ãã ã®ä»ã®éšåã§ã®å€æŽããããã©ãŒãã³ã¹ãéèŠãªå®è¡ãããŒãæå³ããäžæããããšãé²ããŸãã
å®å®åã€ã³ã¿ãŒãã§ãŒã¹ã¯ãåäœã®ææ§ããå¶éãããå³å¯ã«å®çŸ©ãããéå®çãªå¥çŽã§ããå®è£ ã®æ°ãå¶éããäžè²«ããåãããã¡ã€ã«ãç¶æããåå²ã®ããªãšãŒã·ã§ã³ãæå°éã«æããŸãããããã®ååã¯ã ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³æç¢ºãªå¢çãèšèšäžã®åé¡ã®é£éãé²ããŸããäžå®å®ãªåäœãå®å®ããçµè·¯ããåé¢ããããšã§ãããŒã ã¯é·æçãªJITæé©åããµããŒãããäºæž¬å¯èœæ§ãå®çŸããŸãã
å®å®åã€ã³ã¿ãŒãã§ãŒã¹ã®å®è£ ã«ã¯ãåºç¯ãªæœè±¡åã®åå²ãã·ãŒã«åã®å°å ¥ãåçæ©èœããããã³ãŒãããåé¢ããããšãªã©ãå«ãŸããå ŽåããããŸããããã«ãããæé©åã®åœ±é¿ãåããé åãé »ç¹ãªãªãã¡ã¯ã¿ãªã³ã°ã€ãã³ãããéé¢ãããç¶æ ãç¶æã§ããŸãã
å®è¡ãèæ ®ããã¢ãžã¥ãŒã«èšèšã«ããæé©åã®è匱æ§ã®äœæž
åŸæ¥ã®ã¢ãžã¥ãŒã«èšèšã¯æ©èœå¢çã«éç¹ã眮ããŠããŸãããäŸåé¢ä¿ãèæ ®ãããªãã¡ã¯ã¿ãªã³ã°ã¯å®è¡å¢çãéèŠããŸããã¢ãžã¥ãŒã«ã¯ãè² è·æã®æåãäºæž¬å¯èœã§å®å®ããææ©çæé©åãšäºææ§ãæã€ããã«èšèšããå¿ èŠããããŸãããã®ã¢ãããŒãã¯ãæ®çºæ§ã®é«ãã¢ãžã¥ãŒã«ãããã©ãŒãã³ã¹ã極ããŠéèŠãªå®è¡ãã¹ã®è¿ãã«ããå Žåã«çããè匱æ§ã«å¯ŸåŠããŸãã
å®è¡ãèæ ®ããã¢ãžã¥ãŒã«åã«ãããã¢ãžã¥ãŒã«éã®ãžãã¿ãæå°éã«æããããããã¢ãžã¥ãŒã«ã®å€æŽãå¥ã®ã¢ãžã¥ãŒã«ã®å®è¡ç¹æ§ã«äºæãã¬å€åãåãŒãããšããªããªããŸããããã¯ã è¿ä»£åããŒã«ã®æŠèŠã·ã¹ãã ã®åæ§ç¯ã«ãã£ãŠå®è¡æã®å®å®æ§ãåäžããŸããæ©èœã®ã¿ã§ã¯ãªãå®è¡æ¹æ³ã«åºã¥ããŠã¢ãžã¥ãŒã«ãåæ§æããããšã§ãããŒã ã¯æ©èœãé²åããŠãå®å®ãããããã¡ã€ãªã³ã°ãã¿ãŒã³ãç¶æã§ããŸãã
ãã®ã¢ãã«ã«åºã¥ããªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãåçåäœã®åé¢ãã¢ãžã¥ãŒã«ã®è²¬ä»»ã®å調æŽããããã¯ããªã¢ãŒãã£ãã¯ãªæ¡åŒµãçã¿åºãç¶æ¿éå±€ã®åç·šæãªã©ãå«ãŸããŸãããããã®æ¹åã«ããã1ã€ã®ã¢ãžã¥ãŒã«ã®å€æŽãåºç¯å²ã«ãããéæé©åã€ãã³ããåŒãèµ·ããå¯èœæ§ãäœæžãããŸãã
ããŒãžã§ã³ç®¡çãšäºæž¬å¯èœãªäŸåãã¹ã«ããæé©åã®å®å®æ§ã®ç¢ºä¿
äžå®å®æ§ã®åå ãšããŠèŠèœãšãããã¡ãªã®ããã¢ãžã¥ãŒã«éã§äŸåé¢ä¿ã®ããŒãžã§ã³ãäžèŽããŠããªãããšã§ããããŒãžã§ã³ã®äžäžèŽããããã§ãçºçãããšãåã®çžéãäºæž¬äžå¯èœãªããŒã¿ãããŒããããŠå®è¡æã®åäœã®ç«¶åãåŒãèµ·ãããæé©åã®ä¿¡é Œæ§ãäœäžãããŸããç¹ã«ãå€§èŠæš¡ãªãªããžããªãè€æ°ããŒã ã§æ§æãããç°å¢ããããã¯ã¬ã¬ã·ãŒã³ã³ããŒãã³ããšææ°ã³ã³ããŒãã³ãã®äž¡æ¹ãçµ±åããã·ã¹ãã ã§ã¯ãããŒãžã§ã³ã®äžäžèŽã倧ããªåé¡ãšãªããŸãã
ããŒãžã§ã³ã®çµ±äžæ§ã確ä¿ããããšã§ãåã°ã©ãããªããžã§ã¯ãã®ã©ã€ããµã€ã¯ã«ããããŠåäœã®æåŸ å€ã®äžè²«æ§ãç¶æããããšãã§ããŸããäŸåé¢ä¿ã®ãã¹ãäºæž¬å¯èœã§ããå Žåããããã¡ã€ãªã³ã°ããŒã¿ã¯ãããã€ã¡ã³ãå šäœã§ããæ£ç¢ºãã€æç¶å¯èœã«ãªããŸãããã®äžè²«æ§ã¯ãåè¿°ã®æ§é çãªä¿¡é Œæ§ã®åäžãåæ ããŠããŸãã 鲿ãããŒã®å®è·µäºæž¬å¯èœãªå¢çã«ãã£ãŠã·ã¹ãã ã®è匱æ§ã軜æžãããŸããããŒãžã§ã³ããã¯ãäŸåé¢ä¿ã®èª¿åããããŠéäžåãããäŸåé¢ä¿ã¬ããã³ã¹ã¯ãã¹ãŠãå®å®æ§ã«è²¢ç®ããŸãã
äºæž¬å¯èœãªäŸåé¢ä¿ãã¹ãç¶æããå€åæ§ãäœæžããããšã§ãçµç¹ã¯JITæé©åããªãªãŒã¹éã§æå¹ã«ä¿ã€ããšãã§ããŸããããã«ãããå®è¡æã®ãã£ãŒã³ãäœæžããæé©åè§£é€ã®é »åºŠãæå°éã«æããããé·æçãªããã©ãŒãã³ã¹ã®äžè²«æ§ã確ä¿ãããŸãã
Smart TS XL: ã·ã¹ãã å šäœã®äŸåé¢ä¿ã®æŽå¯ã«ãã JIT åäœã®å®å®å
GraalVMãšOpenJ9ã«ãããããªããã£ãã€ãŒãŒã·ã§ã³ã«ã¹ã±ãŒãã®åæžã«ã¯ãåé¡ã®ããã¡ãœãããããã€ã屿çã«èª¿æŽããã ãã§ã¯äžååã§ããåãã¢ãžã¥ãŒã«ããã¬ãŒã ã¯ãŒã¯ããããŠã©ã³ã¿ã€ã åäœãå€§èŠæš¡ã«ã©ã®ããã«çžäºäœçšããããçè§£ããããšãäžå¯æ¬ ã§ããå€§èŠæš¡ãªJVMç°å¢ã®å€ãã§ã¯ããã®ã¬ãã«ã®å¯èŠæ§ãæåã§å®çŸããããšã¯äžå¯èœã§ããäŸåé¢ä¿ã¯ããŒã ã®å¢çãè¶ããå ±æãŠãŒãã£ãªãã£ã¯çµ¶ããé²åãããã¬ãŒã ã¯ãŒã¯ã¯éçºè ãäºæããªãæ¹æ³ã§ã³ãŒã«ã°ã©ãã倿Žããåçãªåäœãæ³šå ¥ããŸããSmart TS XLã¯ãã¢ããªã±ãŒã·ã§ã³ã©ã³ãã¹ã±ãŒãå šäœã«ãããæ§é çããã³åäœçãªæŽå¯ãæäŸããã³ãŒãã®é¢ä¿ãšã©ã³ã¿ã€ã ããã©ãŒãã³ã¹ãžã®åœ±é¿ãçžé¢ãããããšã§ãæé©åäœæ¥ã屿çãªçç¶ã§ã¯ãªãJITã®äžå®å®æ§ã®çã®åå ã«çŠç¹ãåœãŠãããããã«ããããšã§ããã®ã®ã£ãããè§£æ¶ããŸãã
åŸæ¥ã®ãããã¡ã€ã©ãŒããã©ãã§æéãè²»ããããŠããããã瀺ãã®ã«å¯ŸããSmart TS XLã¯ããªãããã§æé©åã倱æããã®ããã«çŠç¹ãåœãŠãŸããåŒã³åºãã°ã©ããåã®äœ¿çšãã¿ãŒã³ãã¢ãžã¥ãŒã«å¢çãå ±æäŸåé¢ä¿ãåæããæšæž¬çãªä»®å®ãã©ã®ããã«åœ¢æãããã©ãã§ãããæãç¡å¹ã«ãªãå¯èœæ§ãé«ãããçè§£ããŸããå®è¡æã®ãšããã³ã¹ãšçµã¿åãããããšã§ããã®æ§é çèŠç¹ã¯ãã¢ãŒããã¯ããéæé©åãªã¹ã¯ãçã«äœæžãããªãã¡ã¯ã¿ãªã³ã°äœæ¥ãåªå ããããšãå¯èœã«ããŸãããã®ã¢ãããŒãã¯ã以äžã®ãªãœãŒã¹ã§èª¬æãããŠããæ¢åã®ãã©ã¯ãã£ã¹ãè£å®ãããã®ã§ãã å®è¡æã®åäœã®å¯èŠå ãã®èšäºã¯ãå®è¡ã«é¢ããæŽå¯ãã©ã®ããã«è¿ä»£åãå éãããã匷調ãã ãœãããŠã§ã¢ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ ããã©ãŒãã³ã¹ããåå¿çãªåãçµã¿ã§ã¯ãªããã¬ããã³ã¹ã®è²¬ä»»ãšããŠäœçœ®ã¥ããè°è«ã§ãã
éæé©åãã°ãšæ§é ãããã¹ãããã®çžé¢é¢ä¿
éæé©åãã°ãšJFRèšé²ã¯ãJITã®æ³å®ãã©ãã§ç Žç¶»ãããã«ã€ããŠã®è©³çŽ°ãªæ å ±ãæäŸããŸããããããã®å€±æã®åå ã説æããããšã¯ã»ãšãã©ãããŸãããã¢ããªã¹ãã¯ã¡ãœããåããã€ãã³ãŒãã€ã³ããã¯ã¹ãçç±ã³ãŒãã確èªã§ããŸããããããã®ã€ãã³ãã®èåŸã«ããæ§é çãªã³ã³ããã¹ãã¯äŸç¶ãšããŠäžæã§ããSmart TS XLã¯ãéæé©åã€ãã³ããåºç€ãšãªãã³ãŒã«ã°ã©ããåéå±€ãäŸåé¢ä¿æ§é ã«ãªã³ã¯ããããšã§ããã®ã®ã£ãããåããŸãããµãŒãã¹ãã¯ãŒã¯ããŒãå šäœã«ããã£ãŠãéæé©åããããã¬ãŒã ã«ç¹°ãè¿ãåºçŸããã€ã³ã¿ãŒãã§ãŒã¹ãå ±æãŠãŒãã£ãªãã£ããŸãã¯ãã¬ãŒã ã¯ãŒã¯ãšã³ããªãã€ã³ããç¹å®ã§ããŸãã
ãã®çžé¢é¢ä¿ã¯ãåãã¯ã©ã¹ãŸãã¯ã¡ãœãããè€æ°ã®å®è¡ãã¹ã«é¢äžããç°å¢ã§ã¯ç¹ã«éèŠã§ãããŠãŒãã£ãªãã£ã¡ãœãããæ°åã®ãããã«ãŒãã«ã€ã³ã©ã€ã³åãããŠããå Žåããã®åå²åäœãåã®äœ¿çšæ³ã®å€æŽã«ãã£ãŠãããããã¹ãŠãäžåºŠã«ç¡å¹åãããå¯èœæ§ããããŸããSmart TS XLã¯ãåæé©åè§£é€ãæ§é çãªãœãŒã¹ã«ãããã³ã°ããããšã§ãåäžã®æ®çºæ§äŸåé¢ä¿ãåºç¯ãªéå±€æ§é ã®å€æŽã®åå ãšãªã£ãŠããå ŽåãããŒã ãèªèã§ããããã«ããŸãããã®ã·ã¹ãã å šäœã®ãã¥ãŒã¯ã ã€ãã³ãçžé¢æè¡è€éãªç¶æ³ã«ãããæ ¹æ¬åå ãç¹å®ããã«ã¯ãè€æ°ã®ä¿¡å·ãçµ±åããå¿ èŠããããŸãã
Smart TS XLã¯ã蚱容å¯èœãªããŒã«ã«ãªããªããã£ãã€ãŒãŒã·ã§ã³ãšãã¢ãŒããã¯ãã£äžã®ä¿®æ£ãå¿ èŠãªæ§é çãªé害ãåºå¥ããŸããäŸãã°ããšã©ãŒãã¹ã«ãããçšãªã¬ãŒããšã©ãŒã¯ãªãã¡ã¯ã¿ãªã³ã°ã®å¿ èŠæ§ã瀺åããªãäžæ¹ã§ã1ã€ã®å ±éæœè±¡åã«çµã³ä»ãããã倿°ã®ãµãŒãã¹ã§ç¹°ãè¿ãç¡å¹åãçºçããå Žåã¯ãã·ã¹ãã å šäœã®åé¡ã瀺åãããŸãããã®åªå é äœä»ãã«ãããããŒã ã¯ããªããã£ãã€ãŒãŒã·ã§ã³ã®é »åºŠãšããã©ãŒãã³ã¹ã®å€åæ§ãæå€§éã«äœæžã§ããæ§é 倿Žã«æ³šåã§ããŸãã
圱é¿ãèæ ®ããäŸåé¢ä¿ãããã³ã°ã䜿çšãããªãã¡ã¯ã¿ãªã³ã°äœæ¥ã®åªå é äœä»ã
å€§èŠæš¡çµç¹ã§ã¯ããªãã¡ã¯ã¿ãªã³ã°èœåãéãããŠãããç«¶åããåªå é äœã«ãããçè«äžã®ãªã¹ã¯ãã¹ãŠã«å¯ŸåŠããããšã¯çŸå®çã§ã¯ãããŸãããSmart TS XLã¯ãäŸåé¢ä¿ãã©ã®çšåºŠåºã䜿çšãããŠããããããããã¹ã«ã©ã®çšåºŠé »ç¹ã«åºçŸãããããããŠãã®äŸåé¢ä¿ãžã®å€æŽãéæé©åã€ãã³ããšã©ã®çšåºŠçžé¢ããŠããããå®éåããããšã§ã圱é¿ãèæ ®ããæææ±ºå®ããµããŒãããŸãããŸããã©ã®ã¢ãžã¥ãŒã«ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãšãªã£ãŠãããããããŠã©ã®ã¢ãžã¥ãŒã«ãJITåäœãžã®åœ±é¿ãæå°éã§ãããã瀺ãã¢ãŒããã¯ãã£ããããæäŸããŸãã
ãã®æ©èœã«ããããªãã¡ã¯ã¿ãªã³ã°ã¯çŽæçãªäœæ¥ãããšããã³ã¹ã«åºã¥ãèšç»ãžãšç§»è¡ããŸããCPUã³ã¹ãã®é«ãã¡ãœããã®ã¿ã«çŠç¹ãåœãŠãã®ã§ã¯ãªãããããã¡ã€ãªã³ã°ã®äžå®å®æ§ãåã®ã€ã³ãã¬ãåŒãèµ·ããäŸåé¢ä¿ãã¿ãŒã²ããã«ããããšãã§ããŸããäŸãã°ãSmart TS XLã¯ãåäžã®å ±ææ€èšŒã©ã€ãã©ãªãå€ãã®ã€ã³ã©ã€ã³ãã§ãŒã³ã«åºçŸããéå»ã«ãã€ããŒãªããžã§ã³åŸã«è€æ°ã®æé©åè§£é€ã€ãã³ããããªã¬ãŒããŠããããšãæããã«ãããããããŸããããã®ã©ã€ãã©ãªããªãã¡ã¯ã¿ãªã³ã°ããŠãäžå®å®ãªããžãã¯ãå®å®ããé«éãã¹ããåé¢ããããšã¯ãç¬ç«ãããããã¡ãœãããæé©åãããããã¯ããã«å€§ããªã¡ãªããããããããŸãã
ãã®ã¢ãããŒãã¯ããã§ã«æ§é åæã䜿çšããŠããè¿ä»£åæŠç¥ã«èªç¶ã«é©å¿ããŸãã æ®µéçãªè¿ä»£åã¢ãããŒãSmart TS XLã¯ããããã®æŠç¥ã«JIT察å¿ã®èŠçŽ ã广çã«è¿œå ããèšç»ããã倿Žãé·æçãªæé©åããµããŒãããããšãä¿èšŒããŸããæ§é çç¯å²ãšæé©åè§£é€ã®åœ±é¿ã®äž¡æ¹ã«åºã¥ããŠãªãã¡ã¯ã¿ãªã³ã°åè£ãã©ã³ã¯ä»ãããããšã§ãã¢ãŒããã¯ãã£å§å¡äŒãå®è¡æã®åäœã«æ°žç¶çãªæ¹åãããããäœæ¥ãæ£åœåããé åºä»ããã®ã«åœ¹ç«ã¡ãŸãã
æ§é çãªãWhat-Ifãåæã«ããå°æ¥ã®æé©åè§£é€ã«ã¹ã±ãŒãã®é²æ¢
ããã©ãŒãã³ã¹ã®äœäžã¯ãå€ãã®å Žåãæ°æ©èœãäŸåé¢ä¿ãæ¬çªç°å¢ã«å°å ¥ãããåŸã«åããŠçŸããŸããã€ã³ã¿ãŒãã§ãŒã¹ããã¬ãŒã ã¯ãŒã¯çµ±åãå ±æã©ã€ãã©ãªãžã®äžèŠç¡å®³ãªå€æŽããå®éã®ã¯ãŒã¯ããŒããã¿ãŒã³ã«ãããŠåºç¯å²ã«ãããæé©åã®æå€±ãåŒãèµ·ããããšããäºäŸã¯å°ãªããããŸãããSmart TS XLã¯ãå°å ¥åã«æ§é çãªãwhat-ifãåæãå¯èœã«ããããšã§ããããããªã¹ã¯ã軜æžããŸããã¢ãŒããã¯ãã¯ãæ°ããäŸåé¢ä¿ãæ¢åã®ã³ãŒã«ã°ã©ãã«ã©ã®ããã«çµ±åãããããã©ã®ããããã¹ãšäº€å·®ãããããããŠããããåã®å€æ§æ§ãåå²ã®è€éãã«ã©ã®ãããªåœ±é¿ãäžããããè©äŸ¡ã§ããŸãã
ãã®å°æ¥ãèŠæ®ããèŠç¹ã«ãããããŒã ã¯æ¬è³ªçã«JITã«é©ããæ°ããã¢ãžã¥ãŒã«ãã€ã³ã¿ãŒãã§ãŒã¹ãèšèšã§ããŸããäŸãã°ãSmart TS XLã¯ãé »ç¹ã«äœ¿çšãããã€ã³ã¿ãŒãã§ãŒã¹ã«å¥ã®å®è£ ã远å ãããšãããã€ãã®åŒã³åºããµã€ãããã€ã¢ãŒãã£ãã¯ãªåäœããã¡ã¬ã¢ãŒãã£ãã¯ãªåäœãžãšç§»è¡ããå¯èœæ§ãããããšã瀺ããããããŸããããã®ç¥èŠã«åºã¥ããèšèšè ã¯æ°ããåäœã®ããã«ãããéå®çãªã€ã³ã¿ãŒãã§ãŒã¹ãå°å ¥ããããšã§ãæ¢åã®ããããã¹ãä¿è·ããããšãã§ããŸãããã®èšç»ã®èŠåŸã¯ãã¬ããã³ã¹ã®èгç¹ãšäžèŽããŠããŸãã 倿Žç®¡çããã»ã¹å€æŽãå±éãããåã«ãªã¹ã¯ãè©äŸ¡ãããŸãã
Smart TS XLã¯ãæ§é è©äŸ¡ãèšèšããã³ã¬ãã¥ãŒã¯ãŒã¯ãããŒã«çµ±åããããšã§ãJITã®å®å®æ§ãäºåŸçãªãã¥ãŒãã³ã°ã®åé¡ããèšèšæã®èæ ®äºé ãžãšå€é©ããŸããããã«ãããäºæãã¬æé©åè§£é€ã®é£éã®çºçé »åºŠãäœæžããããã©ãŒãã³ã¹ã€ã³ã·ãã³ã調æ»ã®æéãççž®ãããæ°æ©èœã®ã¹ã±ãŒã©ããªãã£ã«å¯Ÿããä¿¡é Œæ§ãåäžããŸãã
Smart TS XL ãš JVM ãã¬ã¡ããªããã³ CI/CD ãã€ãã©ã€ã³ã®çµ±å
éæé©åãã¿ãŒã³ã¯éçãªãã®ã§ã¯ãªããã³ãŒãã®å€æŽãã¯ãŒã¯ããŒãã®å€åãã€ã³ãã©ã¹ãã©ã¯ãã£ã®åæ§æã«åãããŠé²åããŸããSmart TS XLã¯ãJVMãã¬ã¡ããªãCI/CDãã€ãã©ã€ã³ãšçµ±åããããšã§ãã³ãŒãæ§é ãå®è¡æã®åäœãã¢ãŒããã¯ãã£äžã®æ±ºå®äºé ã®éã§ç¶ç¶çãªãã£ãŒãããã¯ã«ãŒãã圢æãããã广çã«ãªããŸãããã¹ãç°å¢ãšæ¬çªç°å¢ããJFRèšé²ãJITãã°ãããã©ãŒãã³ã¹ã¡ããªã¯ã¹ãåã蟌ãããšã§ãæ§é ãªã¹ã¯ãå¢å ããŠããç®æãšæé©åãç¶æãããŠããç®æã«é¢ããçè§£ãæŽæ°ã§ããŸãã
CI/CDã®ã³ã³ããã¹ãã§ã¯ãSmart TS XLã¯æ°ãããã«ããåæããããã©ãŒãã³ã¹ãã¹ããå®äºããåã§ãã£ãŠããJITã®åäœã«åœ±é¿ãäžããå¯èœæ§ã®ããæ§é çãªå€æŽãæ€åºã§ããŸããæ¡åŒµãããç¶æ¿éå±€ãæ¡åŒµãããã€ã³ã¿ãŒãã§ãŒã¹ããŸãã¯æ¢ç¥ã®ããããã¹åšèŸºã®äŸåé¢ä¿ã®æ·±ãã®å¢å ããã©ã°ä»ãã§ããŸãããã®èªååã¯ã ããã©ãŒãã³ã¹ååž°ãã¬ãŒã ã¯ãŒã¯ããã©ãŒãã³ã¹ãã§ãã¯ãããªããªãŒã¯ãŒã¯ãããŒã®æšæºçãªäžéšãšãªãæä»£ã§ããSmart TS XLã¯ããããã®ãã§ãã¯ã«æ§é çãªåŽé¢ã远å ããããã©ãŒãã³ã¹ã®å€åã®æç¡ã ãã§ãªããå€åã®åå ãšãªã£ãå¯èœæ§ã®ããã¢ãŒããã¯ãã£äžã®æ±ºå®ã瀺ããŸãã
Smart TS XLã¯ãæ§é çãªæŽå¯ãšéçšãã¬ã¡ããªã飿ºãããããšã§ãã¬ã€ãã³ã·ãã¹ã«ãŒããããšäžŠãã§æé©åã®å¥å šæ§ã第äžçŽã®ææšãšããŠè¿œè·¡ããããšãå¯èœã«ããŸããããã«ãããJITã®å®å®æ§ã芳å¯ã管çãç£æ»ããããšãå¯èœã«ãªããŸããããŒã ã¯ãæéã®çµéãšãšãã«ãé«ãªã¹ã¯ãªãã¿ãŒã³ãã³ãŒãããŒã¹ã«äŸµå ¥ããã®ãé²ãã¢ãŒããã¯ãã£äžã®ã¬ãŒãã¬ãŒã«ã確ç«ããäºæž¬å¯èœãªJITåäœãç¶æããè€éãªJVMç°å¢ã«ãããæé©åè§£é€ã®ç®¡çã«ãããéçšã³ã¹ããåæžããŸãã
æ§é çå®å®æ§ãšäºæž¬å¯èœãªæé©åã«ãã JVM ããã©ãŒãã³ã¹ã®ç¶æ
å€§èŠæš¡ãªJVMç°å¢ã§æ°žç¶çãªJITããã©ãŒãã³ã¹ãå®çŸããã«ã¯ã屿çãªä¿®æ£ãåå¥ã®ãã¥ãŒãã³ã°ã ãã§ã¯äžååã§ããã¢ãŒããã¯ãã£ã®æå³ãæ§é ã®æç¢ºãããããŠå®è¡æã®åäœãæŽåãããããšã§ãJITã¯å€åããã¯ãŒã¯ããŒããç¶ç¶çãªæ©èœé²åã«ãããŠãæå¹ãªä»®å®ã圢æã§ããããã«ãªããŸããçµç¹ãã¢ããªã±ãŒã·ã§ã³ãæ¡åŒµããã«ã€ããŠãããªã¢ãŒãã£ãºã ãã¢ãžã¥ãŒã«ã®ç¡ç§©åºãªæ¡æ£ãåå²ã®äžå®å®æ§ããããŠäŸåé¢ä¿ã®å€åãèç©ãããææ©çãªæé©åã¯è匱ãªãã®ã«ãªããŸãããã®èšäºã§èª¬æãããã¿ãŒã³ã¯ãè±æé©åã«ã¹ã±ãŒããåã ã®ã¡ãœããã«ãã£ãŠåŒãèµ·ããããããšã¯ã»ãšãã©ãªããJVMãå®è¡åäœãè§£éããæ¹æ³ã«åœ±é¿ãäžããã·ã¹ãã å šäœã®é¢ä¿æ§ããçããããšã瀺ããŠããŸãããããã®ãã¿ãŒã³ã«å¯ŸåŠããã«ã¯ãåçºã®æé©åã§ã¯ãªããé·æçãªæ§é 調æŽãå¿ èŠã§ãã
äŸåé¢ä¿ãèæ ®ããã¢ãããŒãã«ãããã¢ãŒããã¯ãã£ã¯äºæž¬å¯èœãªåäœããµããŒãããŸããã€ã³ã¿ãŒãã§ãŒã¹ã®å®å®åãããªã¢ãŒãã£ãºã ã®å¶çŽããã¬ãŒã ã¯ãŒã¯ã®åçåäœã®åé¢ãã¢ãžã¥ãŒã«å¢çãšå®è¡ãã¹ã®æŽåã¯ãã¹ãŠãäžè²«ãããããã¡ã€ãªã³ã°ä¿¡å·ã®çæã«è²¢ç®ããŸãããããã®ãã©ã¯ãã£ã¹ã¯ãæšæž¬ã«åºã¥ãä»®å®ãæºãããå€åæ§ãäœæžããæé©åããããã¬ãŒã ã®åºç¯ãªç¡å¹åãé²ããŸãã倿Žãè€æ°ã®ãµãŒãã¹ãå ±æã©ã€ãã©ãªã«äŒæããç°å¢ã§ã¯ãäŸåé¢ä¿ã®æç¢ºåãæç¶å¯èœãªããã©ãŒãã³ã¹ã®åææ¡ä»¶ãšãªããŸããã¢ãŒããã¯ããšéçºããŒã ãã³ãŒã倿Žãé·æçãªæé©åã®å®å®æ§ãšãã芳ç¹ããæããããšã§ãéå±€æ§é ã®å ¥ãæ¿ããã¡ã¬ã¢ãŒãã£ãã¯ãªæ¡åŒµãåŒãèµ·ãããã¿ãŒã³ã®åå°å ¥ãªã¹ã¯ãæå°éã«æããããšãã§ããŸãã
GraalVMãOpenJ9ãªã©ã®JITã³ã³ãã€ã©ã¯ãæ§é ã®äºæž¬å¯èœæ§ãç©æ¥µçã«æé©åããããšã§æ©æµããããããŸããããããã¹ãå®å®ããããŒã¿ãããŒãäžè²«ãããã¿ãŒã³ã«åŸãå Žåãã³ã³ãã€ã©ã¯é »ç¹ãªç¡å¹åã®è åšã«æãããããšãªããé«åºŠãªã€ã³ã©ã€ã³å±éããšã¹ã±ãŒãè§£æããããŠç¹æ®åãå®è¡ã§ããŸããããã«ãããã¯ãŒã¯ããŒãã®å€åãããŒã ééçºããããŠã¢ãŒããã¯ãã£ã®è€éãã«èãããæé©ååºç€ãæ§ç¯ãããŸããJITã®åäœãã¢ããªã±ãŒã·ã§ã³æ§é ããããŠã¢ãžã¥ãŒã«ã¬ããã³ã¹ãæŽåããŠåäœããããšã§ãæç¶å¯èœãªããã©ãŒãã³ã¹ãå®çŸãããŸãã
ã¢ããã€ãŒãŒã·ã§ã³ã®åãçµã¿ãäŒæ¥ç°å¢ãé²åããç¶ããäžã§ãçµç¹ã¯æ§é äžã®æ±ºå®ãšã©ã³ã¿ã€ã çµæãçžé¢ãããããŒã«ãã¢ãããŒãã®æ©æµãåããŠããŸããã©ã³ã¿ã€ã ãã¬ã¡ããªãäŸåé¢ä¿åæãã¢ãŒããã¯ãã£ç£èŠãçµ±åãããã©ã¯ãã£ã¹ã¯ããããã€ã¡ã³ãåŸã«åããŠçºçããå¯èœæ§ã®ããååž°ãé²ãã®ã«åœ¹ç«ã¡ãŸããã¬ããã³ã¹ãèšèšã¬ãã¥ãŒãCI/CDã¯ãŒã¯ãããŒã«æ§é èªèãçµã¿èŸŒãããšã§ãããŒã ã¯æ°æ©èœãå°å ¥ãããŠãæé©åãããå®è¡ãã¹ã®å埩åãç¶æã§ããŸãã
é·æçãªJITæé©åã®è¿œæ±ã¯ã究極çã«ã¯ã¢ãŒããã¯ãã£ã®èŠåŸã®åé¡ã§ããäºæž¬å¯èœãªäŸåé¢ä¿ãåžžã«ç¶æããåäœã®å€åæ§ãäœæžããå®è¡ã®å®å®æ§ãéèŠããèšèšãè¡ãçµç¹ã¯ãããã©ãŒãã³ã¹ã®äœäžãå°ãªããéçšãªã¹ã¯ãäœæžããŸããæ éãªæ§é ã®æ¹è¯ãéããŠãããã©ãŒãã³ã¹ã¯å¶çºçãªçµæã§ã¯ãªããã·ã¹ãã ã®å®å®ãããçµ±å¶ãããç¹æ§ãšãªããŸãã