èšäºã«ã€ããŠç°¡åã«
ã¡ãœããã®ã€ã³ã©ã€ã³åã¯ãJITã³ã³ãã€ã©ãŒã§æãéèŠãªæé©åã®1ã€ã§ãïŒããã«ããããã¡ãœããããŒã¹ããŸãã¯ããããã¯ããšåŒã°ããŸãïŒã ãã®æé©åã«ããã³ã³ãã€ã«ã®ç¯å²ãæ¡å€§ããããã€ãã®ã¡ãœãããå šäœãšããŠæé©åã§ããããã«ãªããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžããŸãã ãã ããã€ã³ã©ã€ã³åã¡ãœãããé »ç¹ã«äœ¿çšãããšãã³ã³ãã€ã«æéãäžå¿ èŠã«é·ããªããçæããããã·ã³ã³ãŒããå€ããªããããŸãã ãããŠãããã¯çç£æ§ã«ãã§ã«æªåœ±é¿ãåãŒããŸãã
ãã¬ãŒã¹JITã³ã³ãã€ã©ãŒã¯ãã¹ãŠãé£ç¶ããŠåéããã®ã§ã¯ãªããé »ç¹ã«å®è¡ããããã¹ããããããã¬ãŒã¹ã®ã¿ãåéããŸãã ããã«ãããã³ã³ãã€ã«ãé«éåããçæããããã·ã³ã³ãŒãã®éãæžãããå質ãåäžãããããšãã§ããŸãã 以åã®äœæ¥ã§ã¯ããã¬ãŒã¹ãèšé²ããã€ã³ãã©ã¹ãã©ã¯ãã£ãšãã¬ãŒã¹Javaã³ã³ãã€ã©ãå®è£ ããHotSpot VMã®Javaã³ãŒããå€æŽããŸããã ãã®äœæ¥ã«åºã¥ããŠããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åãçç£æ§ãšçæã³ãŒãã®éã«äžãã圱é¿ãèšç®ããŸããã
ã€ã³ã©ã€ã³åæ¹æ³ãšæ¯èŒããŠãã€ã³ã©ã€ã³åãã¬ãŒã¹ã«ã¯ããã€ãã®éèŠãªå©ç¹ããããŸãã 第äžã«ãã€ã³ã©ã€ã³ã§å®è¡ããããã¹ã¯é »ç¹ã«ããå®è¡ãããªãããããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã¯ããéžæçã§ãã 次ã«ãèšé²ããããã¬ãŒã¹ã«ä»®æ³åŒã³åºãã«é¢ããæ å ±ãå«ããããšãã§ãããããã€ã³ã©ã€ã³åãç°¡åã«ãªããŸãã 3çªç®ã®å©ç¹ã¯ããã¬ãŒã¹æ å ±ãã³ã³ããã¹ãäŸåã§ãããããã¡ãœããã®ããŸããŸãªéšåãåŒã³åºãã®ç¹å®ã®å Žæã«å¿ããŠã€ã³ã©ã€ã³åã§ããããšã§ãã ãããã®å©ç¹ã«ãããçæãããã³ãŒãã®éããŸã 劥åœãªå¶éå ã«ããå Žåãã€ã³ã©ã€ã³åãããç©æ¥µçã«ãªããŸãã
DaCapo 9.12 BachãSPECjbb2005ãSPECjvm2008ãã³ãããŒã¯ã䜿çšããŠããã€ãã®ã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ããã¹ããããã¬ãŒã¹ã³ã³ãã€ã©ãŒã«ãã£ãŠHotSpotã®ãããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãŒããã51ïŒ é«ãããŒã¯ããã©ãŒãã³ã¹ãéæã§ããããšã瀺ããŸããã ããã«ããã¬ãŒãµãŒã³ã³ãã€ã©ã®ã³ã³ãã€ã«é åã®æ¡å€§ããå®æ°ã®æãããã¿ãnullãã§ãã¯ã®åé€ãªã©ãä»ã®æé©åã«ãã©ã¹ã®å¹æãããããããšã瀺ããŸããã
翻蚳ããŒã
ã©ã€ã»ã³ã¹ïŒCC BY 3.0ïŒCreative Commons Attribution 3.0 UnportedïŒ
ããã¬ãŒã¹ãããã³ãã€ã³ã©ã€ã³åããšããåèªã¯ããã·ã¢èªã®å£èªé³å£°ã«ãã£ãããšå«ãŸããããã«ãªã£ãããã翻蚳ããã«æ®ããŸããã ååãšããã©ãã¯ã®æ§ç¯ãã«ã€ããŠè©±ãåããšã誀解ãããããšããããŸãã
ããã³ãŒããå¥ã®ã³ãŒããåŒã³åºãå ŽåãåŒã³åºãå ã¯éä¿¡è ïŒåŒã³åºãå ãéä¿¡è ïŒãšåŒã°ããåŒã³åºãå ã¯åä¿¡è ïŒåŒã³åºãå ãåä¿¡è ïŒãšåŒã°ããŸãã ãããã®åèªã¯éåžžã«é åçã§ãããçããŠäžè¬çã§ããããã®ãããã§ãããã¹ããä¹±éã«ãªããŸããã
ã¡ãœããããŒã¹ã®ã³ã³ãã€ã©ã¯ãããã§ã¯ããããã¯ã³ã³ãã€ã©ããšåŒã°ããŸãã ãã®æ°èªã¯ãããã¹ãã®æ··ä¹±ãæžããããã·ã¢èªçã®ãããŸãããæé€ããããã«ãå°å ¥ãããŠããŸãã
åçãå³ã¯åæç»ããããè±èªã®ç¢æãå«ãŸããŠããŸãã ããããªãã
翻蚳ã¯ã翻蚳è ã«äžåœãªèŠçãããããå Žåã§ããããã¹ãã®è¿ãã«ä¿æãããŸãã ç¹ã«ãç¡éã®èªå·±ç¹°ãè¿ãã倧éã®èšäºã®å 容ãè¶ ããã玹ä»ãã100åè€éãªæã¯ãããŸããŸãªJavaã®ç 究è«æã®é »ç¹ãªä»²éã§ãã æ¢ã«èª°ãã®é¡ãåããããšãã欲æ±ãããå Žåã¯ããããã®æ¬²æ±ãèè ã«é£çµ¡ããŠãã ããã
翻蚳ããŒãïŒå¯Ÿè±¡èªè
å æ¥ãç§ãã¡ã¯æµŽå Žã§æ¥äžæããŠããŸããããããŠãã©ãã¡ããéšãã®åäŸãã¡ã§ããã€ããœãããŠã§ã¢ã®æŽå²ãä»ãšåãããã«ç 究ããããšããèããé¿ããŸãã-ãã·ã¢ã®æŽå²ã ç¹å¥ãªãœãããŠã§ã¢èå€åŠè ã¯ãå€ä»£ã®ãªããžããªã®å¥¥æ·±ãããäžæè°ãæãåºããã»ãããæ éã«æãèœãšããŠåéããããšããŸãã
家ã«åž°ããšããå¿ èªãã®ããã®ææžã®ååã5幎以äžåã®ææžã§æ§æãããŠããããšãããããŸããã ã€ãŸããä»ããçºæãéå§ããããšãã§ããŸãããªãåŸ ã€ã®ã§ããã
ãããã£ãŠããã®èšäºãšæ¬¡ã®èšäºãèªã䟡å€ããããã©ãããæšå¥šããããšã¯å°é£ã§ãã
æ³¥ã®äžã«ãã€ã€ã¢ã³ããæãããšãã§ããããšãããã°ããã¿ããã ã®ãã¿ã«ãªãããšããããŸãã
å¹³åããŠããã®ããã¹ãã¯ä»®æ³ãã·ã³ã®éçºã«ç±å¿ãªäººã察象ãšããŠããŸãã
ããã¹ãã®èè ãšç¿»èš³è ã«é¢ããç°¡åãªæ å ±ã¯ãèšäºã®æåŸã«èšèŒãããŠããŸãã
ãããŠä»ãç§ãã¡ã¯2013幎ãæ¥ã4æã«éã°ããé³¥ãæã£ãŠããŸããç¥ç¶ã®ã¯ãªã¹ãã£ã³ã»ããŠãã«ãã¯ãªã¹ãã£ã³ã»ãŠã£ããŒããã³ã¹ããã¿ãŒã»ã¡ãã»ã³ããã¯ã¯ãã³ãã«åº§ã£ãŠãç¶æ³ã«å¿ããçè·¡ã®ã€ã³ã©ã€ã³åã«ã€ããŠæããŠãããŸãã
1.ã¯ããã«
ã€ã³ã©ã€ã³åã¡ãœããã«åºã¥ããŠãJITã³ã³ãã€ã©ïŒä»¥äžããããã¯ã³ã³ãã€ã©ããšåŒã³ãŸãïŒã¯ã¡ãœããå šäœãå€æããæé©åããããã·ã³ã³ãŒãã«å€æããŸãã ãã¬ãŒãµãŒã³ã³ãã€ã©ã¯ãé »ç¹ã«å®è¡ããããã¹ãã³ã³ãã€ã«åäœãšããŠäœ¿çšããŸã[1]ã ããã«ãããçæããããã·ã³ã³ãŒãã®éãåæžããªãããããŒã¯ããã©ãŒãã³ã¹ãåäžããŸãã å³1ã¯ã3ã€ã®ã¡ãœãããšãããã«æ²¿ã£ã3ã€ã®ãã¹ã®å¶åŸ¡ãããŒã°ã©ãïŒCFGïŒã瀺ããŠããŸãã ãã¬ãŒã¹ã®éå§ã¯ãã¬ãŒã¹ã¢ã³ã«ãŒãšåŒã°ãããã®äŸã§ã¯ãã¹ãŠã®ãã¬ãŒã¹ã«å¯ŸããŠãããã¯1ã§è¡šãããŸãã ã©ã®ãããã¯ãã¢ã³ã«ãŒã«ãªããã¯ããã¬ãŒã¹èšé²ã·ã¹ãã ã®ç¹å®ã®å®è£ ã«å€§ããäŸåããŸãã

å³1. 3ã€ã®æ¹æ³ã«åŸããã¬ãŒã¹ïŒïŒaïŒå¶åŸ¡ãããŒã°ã©ãïŒbïŒå¯èœãªãã¬ãŒã¹
ä»®æ³ãã·ã³ã§ã¯ããã€ãã³ãŒãã®å®è¡ãèšæž¬ããããšã§ãã¬ãŒã¹ãèšé²ã§ããŸãã 次ã«ããããã®ãã¬ãŒã¹ã¯æé©åããããã·ã³ã³ãŒãã«ã³ã³ãã€ã«ãããŸãã ã¡ãœããã®ãŸã ã³ã³ãã€ã«ãããŠããªãéšåãå®è¡ããããšãéåžžãã·ã¹ãã ã¯ã€ã³ã¿ãŒããªã¿ãŒã¢ãŒãã«æ»ããŸãã
çŸåšã®ã»ãšãã©ã®ãã¬ãŒã¹èšé²ã®å®è£ ã§ã¯ããã¬ãŒã¹ãã¡ãœããã®å¢çãè¶ããããšãã§ããŸãã [1ã2ã10ã12ã18]ã ããã¯ãäžç·ã«ã³ã³ãã€ã«ããå¿ èŠããã倧ããªãã¬ãŒã¹ã«ã€ãªããå¯èœæ§ããããŸãã
åã®ç 究[14ã15]ã§ã¯ãOracle Java HotSpotã®ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ã«åºã¥ããŠãã¬ãŒã¹JITã³ã³ãã€ã©ãå®è£ ããŸããã äŒè°ã®ä»¥åã®èšäº[15]ã¯ããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã«çŠç¹ãåœãŠãŠããã次ã®å 容ãå«ãŸããŠããŸããã
- ã€ã³ã©ã€ã³ãã¬ãŒã¹ã®å®è¡æ¹æ³ã®èª¬æãšãã€ã³ã©ã€ã³åæ¹æ³ã«å¯Ÿããå©ç¹ã®èª¬æ
- ãã€ãã£ããã¬ãŒãµJITã³ã³ãã€ã©ã«å®è£ ãããããã€ãã®ã€ã³ã©ã€ã³åæ©èœã®èª¬æ
- DaCapo 9.12ããããã³ãããŒã¯ã®ã³ã³ãã€ã«æéãããŒã¯ããã©ãŒãã³ã¹ãããã³çæããããã·ã³ã³ãŒãã®éã«å¯Ÿãããã¬ãŒã¹ã€ã³ã©ã€ã³åã®ãã¥ãŒãªã¹ãã£ãã¯ã®åœ±é¿ã®è©äŸ¡[3]ã
ãã®èšäºã¯ãäžèšã®ããã¥ã¡ã³ãã®æ¡åŒµããŒãžã§ã³ã§ããã次ã®æ°ããåŽé¢ãè¿œå ããŸãã
- ãã¬ãŒã¹ã®èšé²ããã³ã€ã³ã©ã€ã³åã®ãã詳现ãªèª¬æ
- ãã€ãã£ãã¡ãœããã®ã³ã³ãã€ã©çµã¿èŸŒã¿é¢æ°ãããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã®çµæãšããŠã³ã³ãã€ã«é åãæ¡å€§ããããšã§ã¡ãªãããåŸãçç±ã®èª¬æ
- ãã³ãããŒã¯SPECjbb2005 [23]ããã³SPECjvm2008 [24]ã§ã®ç¹å®ã®ãã¥ãŒãªã¹ãã£ãã¯ã®è©äŸ¡ã
ããã«ãæé«ã®ãã¥ãŒãªã¹ãã£ãã¯ã®ããŒã¯ããã©ãŒãã³ã¹ãHotSpotãµãŒããŒã³ã³ãã€ã©ãšæ¯èŒããŸãã - ã³ã³ãã€ã©ãŒã®ã©ã®é«ã¬ãã«æé©åããã³ã³ãã€ã«é åã®æ¡å€§ã®çµæãšããŠãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã®æ©æµãåãããã«é¢ããç 究ã
ãã®èšäºã®æ®ãã®éšåã¯æ¬¡ã®ããã«æ§æãããŠããŸãã
- æŠèŠããŒã2ã§ã¯ããã¬ãŒãµãŒä»®æ³ãã·ã³ã®ç°¡åãªçŽ¹ä»ãè¡ããŸã
- ããŒã3ã§ã¯ããã¬ãŒã¹ãèšé²ããã·ã¹ãã ã瀺ããŸãã
- ããŒã4ã§ã¯ãã€ã³ã©ã€ã³åã®æ¹æ³ã説æããŸã
- ããŒã5ã§ã¯ãèªè ã«ããŸããŸãªãã¥ãŒãªã¹ãã£ãã¯ã玹ä»ããŸã
- ããŒã6ã§ãã³ãããŒã¯çµæã«ã€ããŠèª¬æããŸã
- ããŒã7ã§ã¯ãé¢é£ããäœæ¥ã«ã€ããŠèª¬æããŸã
- ããŒã8ã§ãã®èšäºãç· ãããããŸãã
2.ã¯ã€ãã¯ã«ãã¯
以åã®äœæ¥ã§ã¯ããã¬ãŒã¹ãèšé²ããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãšJavaçšã®ãã¬ãŒã¹JITã³ã³ãã€ã©[14,15]ãå®è£ ããŸããã å³2ã¯ãVMã®æ§é ã瀺ããŠããŸãã

å³2.ãã¬ãŒãµãŒä»®æ³ãã·ã³ã®æ§é
å®è¡ã¯ãã¯ã©ã¹ãã¡ã€ã«ãããŒãã解æãããã³æ€èšŒããã¯ã©ã¹ããŒããŒããå§ãŸããŸãã ã¯ã©ã¹ããŒããŒã¯ãVMã®ä»ã®éšåãåç §ããå®æ°ããŒã«ãã¡ãœãããªããžã§ã¯ããªã©ã®ã©ã³ã¿ã€ã ããŒã¿æ§é ãæäŸããŸãã ã¯ã©ã¹ãããŒããããåŸããã€ãã³ãŒãã®ååŠçã¹ããããå®è¡ãããŸããããã«ãããã«ãŒããèŠã€ãããã¬ãŒã¹æé ã«åºæã®ããŒã¿æ§é ãäœæã§ããŸãã
ãã©ãã¯ãèšé²ããããã«ãHotSpot [13]ãããã³ãã¬ãŒãã€ã³ã¿ãŒããªã¿ãŒãè€è£œããã€ã³ã¹ãã«ã¡ã³ãããŸããã ãã®çµæãæ®éã®éèš³è ãšããã¬ãŒã¹ãèšé²ããéèš³è ã®äž¡æ¹ãåŸãŸããã åŸæ¥ã®ã€ã³ã¿ãŒããªã¿ãŒã¯ãå€æŽãããŠããªãVMãšã»ãŒåãé床ã§ãã€ãã³ãŒããå®è¡ããæåã®å®è¡ã«äœ¿çšãããŸãã åŸæ¥ã®ã€ã³ã¿ãŒããªã¿ãŒããã¬ãŒã¹ã¢ã³ã«ãŒã«ééãããšããã®ã¢ã³ã«ãŒã®åŒã³åºãã«ãŠã³ã¿ãŒãååŸãã1ãã€å¢ãããŸãã ã«ãŠã³ã¿ãŒããªãŒããŒãããŒãããšãã¢ã³ã«ãŒã¯ããããããšããŠããŒã¯ãããå®è¡ã¯ãã¬ãŒã¹ã®èšé²ã䌎ãã€ã³ã¿ãŒããªã¿ãŒïŒä»¥äžããèšé²ã€ã³ã¿ãŒããªã¿ãŒããšåŒã°ããŸãïŒã«åãæ¿ãããŸãã çŸåšã®å®è£ ã§ã¯ãã«ãŒãããããŒã«ã¢ã³ã«ãŒããããµã€ã¯ã«ãã¬ãŒã¹ãšãã¡ãœãããšã³ããªã«ã¢ã³ã«ãŒãããã¡ãœãããã¬ãŒã¹ã®2çš®é¡ã®ãã¬ãŒã¹ããµããŒããããŠããŸãã
HotSpotã¯ãVMã€ã³ãã©ã¹ãã©ã¯ãã£ã®å€§éšåãäžç·ã«äœ¿çšãã2ã€ã®ç°ãªãJITã³ã³ãã€ã©ãæäŸããŸãã ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ïŒã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ïŒã¯ãé«ãèµ·åããã©ãŒãã³ã¹ã確ä¿ããæãåºæ¬çãªæé©åãå®è£ ããããã«äœæãããŸãããããŸãšããªããã©ãŒãã³ã¹ãéæããã«ã¯ååã§ã[19]ã ã³ã³ãã€ã«æã«ãã³ã³ãã€ã©ãŒã¯ãSSAïŒéçåäžå²ãåœãŠïŒ[7]ã«ãã£ã¹ããããé«ã¬ãã«ã®äžéè¡šçŸïŒHIRïŒãçæããŸããããã¯ãå¶åŸ¡ãããŒã°ã©ãïŒCFGïŒã§ãã HIRã®æ§ç¯äžããã³æ§ç¯åŸãå®æ°ã®ç³ã¿èŸŒã¿ãnullã®ãã§ãã¯ã®æé€ãã€ã³ã©ã€ã³åã¡ãœãããªã©ã®æé©åãé©çšãããŸãã æé©åãããHIRã¯ãäœã¬ãã«ã®äžéè¡šçŸïŒLIRïŒã«å€æãããŸããããã¯ããã·ã³ã³ãŒãã«éåžžã«è¿ãã§ãããããã§ããã©ãããã©ãŒã ã«äŸåããŸããã 次ã«ãLIRã¯ç·åœ¢ã¹ãã£ã³[27]ããã³ã³ãŒãçæã«ããã¬ãžã¹ã¿å²ãåœãŠã«äœ¿çšãããŸãã
ãµãŒããŒã³ã³ãã€ã©ïŒãµãŒããŒã³ã³ãã€ã©ïŒã¯ãã¯ã©ã€ã¢ã³ããããå€§å¹ ã«å€ãã®æé©åãå®è¡ããæé«ã®ããŒã¯ããã©ãŒãã³ã¹ãçæã§ããéåžžã«å¹ççãªã³ãŒããçæããŸã[21]ã åæJITã³ã³ãã€ã«ã§ã¯ãç·å®è¡æéã«æ¯ã¹ãŠããããªãªãŒããŒãããããçºçããªãããã«ãé·å¯¿åœã®ãµãŒããŒã¢ããªã±ãŒã·ã§ã³åãã«èšèšãããŠããŸãã ãµãŒããŒã³ã³ãã€ã©ã¯ã次ã®ã³ã³ãã€ã«ãã§ãŒãºãå®è¡ããŸãã解æãæé©åã«äŸåããªããã©ãããã©ãŒã ãåœä»€ã®éžæãã°ããŒãã«ã³ãŒãã®ç§»åãšã¹ã±ãžã¥ãŒãªã³ã°ãã°ã©ãæç»çšã¬ãžã¹ã¿ã®å²ãåœãŠãããŒãããŒã«æé©åããã³ã³ãŒãçæã ãµãŒããŒã³ã³ãã€ã©ã¯ãã«ãŒãäžå€ã³ãŒãã¢ãŒã·ã§ã³ãã«ãŒãã¢ã³ã©ããã³ã°ããšã¹ã±ãŒãåæãªã©ãããã€ãã®è¿œå ã®æé©åãé©çšã§ããŸãã
ç¬èªã®ãã¬ãŒãµãŒJITã³ã³ãã€ã©ã¯ãHotSpotã®ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ã«åºã¥ããŠããŸãã ç§ãã¡ã®æè¡ã¯ãµãŒããŒã³ã³ãã€ã©ã«ãé©çšã§ããã»ã©ååã«äžè¬åãããŠãããšããäºå®ã«ããããããããã®è€éãªæ§é ã¯ãç¹ã«ç 究ãããžã§ã¯ãã®æèã«ãããŠãã³ã³ãã€ã«ã®ãã¬ãŒã¹ã«å¿ èŠãªä¿®æ£ã«ã¯ããŸãé©ããŠããŸããã ãããã£ãŠãã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãããŒã¹ãšããŠäœ¿çšããããšã«ããŸããã
ãã¬ãŒã¹ãé »ç¹ã«äœæãããããã«ãªããšãã³ã³ãã€ã©ãŒã¯ãŸããã¬ãŒã¹ã°ã©ãã«ããããããŒãžããŸãã ãã®æ§é ã¯ãå¶åŸ¡ãããŒã°ã©ãïŒCFGïŒãšãã¬ãŒã¹ããªãŒ[10]ã®ãã€ããªããã§ããããã®äžã«ããŒãžãã€ã³ããããå Žåã§ããäœããã®å©ç¹ãããã°ãããã€ãã®ãã¹ãè€è£œã§ããŸãã ãã®ã¬ãã«ã§ã¯ãäžå®ã®æãããã¿ãç©æ¥µçãªãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åãå¶åŸ¡ãããŒã®æ瀺çãªè€è£œãªã©ãäžè¬çãªãã¬ãŒã¹åºæã®æé©åãè¡ããŸãã ãã®å Žåã«çæããããã·ã³ã³ãŒãã¯ããã®åŸãã€ã³ã¿ããªã¿ãŸãã¯ä»ã®ã³ã³ãã€ã«ããããã¬ãŒã¹ã«ãã£ãŠçŽæ¥åŒã³åºãããŸãã
å®è¡äžã«ç©æ¥µçãªæé©åã®åææ¡ä»¶ã«éåããå Žåãã·ã¹ãã ã¯é²é³ã€ã³ã¿ãŒããªã¿ãŒã«å¯ŸããŠæé©åãããŸãã[18]ã æé©å解é€ã¯ãæåã«çŸåšã®ã³ã³ãã€ã«æžã¿ãã¬ãŒã ã«ååšãããã¹ãŠã®å€ãä¿åããŠããããã®ã³ã³ãã€ã«æžã¿ãã¬ãŒã ã1ã€ä»¥äžã®è§£éæžã¿ãã¬ãŒã ã«çœ®ãæããŸãã äœæããã解éæžã¿ãã¬ãŒã ã®æ£ç¢ºãªæ°ã¯ãçŸåšå®è¡ãããŠããåœä»€ã®ã€ã³ã©ã€ã³åã®æ·±ãã«äŸåããŸãã ãã®åŸã解éããããã¬ãŒã ã¯ä»¥åã«ä¿åãããå€ã§æºããããèšé²ã€ã³ã¿ãŒããªã¿ãŒã§å®è¡ãç¶ç¶ãããŸãã
èšé²ã€ã³ã¿ãŒããªã¿ãŒãã³ãŒããå ¥åãããšãã¡ã€ã³ãã¬ãŒã¹ã®ã¢ã³ã«ãŒã䜿çšãã代ããã«ãæé©å解é€ã®ãã€ã³ãããçŽæ¥å§ãŸãéšåçãªãã¬ãŒã¹ãæžã蟌ãããšãã§ããŸãã ã³ã³ãã€ã«ãããã³ãŒããé »ç¹ã«æé©å解é€ãããããšã«æ°ä»ãããã«ãæé©å解é€ãçºçãããã³ã«ã«ãŠã³ã¿ãå¢åãããŸãã ãããå€ã«éãããšãã³ã³ãã€ã«ããããã·ã³ã³ãŒãã¯ç Žæ£ãããæåã«èšé²ããããã¬ãŒã¹ãšãã¹ãŠã®éšåãã¬ãŒã¹ã®äž¡æ¹ã䜿çšããæ°ããã³ã³ãã€ã«ãéå§ãããŸãã ããã«ãããæé©å解é€ã®é »åºŠãæžããããšãã§ããŸããããšãã°ãã¡ãœããã®ç¯å²ãåºããããç¹å®ã®ç©æ¥µçãªæé©åããªãã«ãããã§ããŸãã
3.ãã¬ãŒã¹ã®èšé²
ãã¬ãŒã¹ãèšé²ããããã®ã¢ãããŒãã¯ãè»éã1ã€ã®æ¹æ³ã®å¢çã«å¶éããŸã[14]ã ã¢ã³ã«ãŒãéåžžã«é »ç¹ã«å®è¡ããå§ããããšãããã£ãæç¹ã§ãå®è¡ã¯éåžžããèšé²ã€ã³ã¿ãŒããªã¿ãŒã«åãæ¿ãããŸãã ãã¬ãŒã¹ãèšé²ããããã«ãåã¹ã¬ããã¯ãçŸåšæžã蟌ãŸããŠãããã¹ãŠã®ãã¬ãŒã¹ãä¿åãããã¬ãŒã¹ã®ã¹ã¿ãã¯ãä¿æããŠããŸãã å¶åŸ¡ã°ã©ããå€æŽã§ããåœä»€ã«é¢ããæ å ±ã¯ã¹ã¿ãã¯ã®äžçªäžã®ãã¬ãŒã¹ã«æ ŒçŽãããã¹ã¿ãã¯ã¯ãã®ã«ãŒã«ããµããŒãããããã«é©å®å€æŽãããŸãã
ãã¬ãŒã¹ã®èšé²äžã«ã¡ãœããåŒã³åºããè¡ããããšããã®åŒã³åºãã¯åŒã³åºããœãŒã¹ãã¬ãŒã¹ã«èšé²ãããŸãã ããã«å ããŠãä»®æ³ã¡ãœãããåŒã³åºãããã«ãåä¿¡ã¯ã©ã¹ãèšè¿°ãããŸãã åŒã³åºãããã¡ãœããã«å ¥ããšãæ°ããã¡ãœãããã¬ãŒã¹ãã¹ã¿ãã¯ã«ããã·ã¥ãããèšé²ãç¶è¡ãããŸãã
åŒã³åºãããã¡ãœãããæ»ããšã察å¿ãããã¬ãŒã¹ãã¹ã¿ãã¯ãããããããããã¬ãŒã¹ãªããžããªã«ä¿åãããŸãã 次ã«ãåŒã³åºãå ã®ãã©ãã¯ãžã®ãã€ã³ã¿ãä¿åããããšã«ãããåŒã³åºãå ãšåŒã³åºãå ã®ãã©ãã¯ãæ¥ç¶ãããããã«é²é³ãåŒã³åºãå ã®ãã©ãã¯ã«ç§»åããŸãã ãã®é¢ä¿ã¯ãã¡ãœããã®å¢çãè¶ããŠåŒã³åºãã«é¢ããç¶æ³äŸåæ å ±ãä¿åããŸããããã«ãããåŒã³åºãã®åçãªã°ã©ãã«äŒŒãããŒã¿æ§é ã衚瀺ãããŸãã
æ¢ã«ä¿åãããŠãããã¬ãŒã¹ãå®å šã«æ°ããæ¹æ³ã§èšé²ããã®ã§ã¯ãªããå床èšé²ãããšãåçŽãªã«ãŠã³ã¿ãŒã®å¢å ãçºçããŸãã ãã¬ãŒã¹ã®æ¹æ³ãç°ãªãå ŽåããŸãã¯åŒã³åºãããã¡ãœããå ã§ç°ãªããã¬ãŒã¹ãåŒã³åºãå Žåããã¬ãŒã¹ã¯ç°ãªããšèããããŸãã ãããã£ãŠããã¬ãŒã¹ããªã³ã¯ãããšãã¢ããªã±ãŒã·ã§ã³ã®ä»»æã®éšåãééããå®äºããåãã¹ã®æ£ç¢ºãªåŒã³åºãæ å ±ãååŸã§ããŸãã èšé²ããããã¬ãŒã¹ã®æ°ã劥åœãªå€ã«æžããããã«ããµã€ã¯ã«ã®ãã¬ãŒã¹ãšååž°ã¡ãœããã芪ãã¬ãŒã¹ã«é¢é£ä»ããŸããã åãã¢ã³ã«ãŒã«å¯ŸããŠãã¬ãŒã¹èšé²ãäžå®åæ°å®è¡ãããçŽåŸã«ããã®ã¢ã³ã«ãŒã®ãã¹ãŠã®éèŠãªãã¬ãŒã¹ããã§ã«èšé²ãããŠãããšæ³å®ãããæé©åããããã·ã³ã³ãŒãã«ã³ã³ãã€ã«ãããŸãã
å³3ã¯ãaddDataã¡ãœããã®èšé²ãéå§ããããã¬ãŒã¹èšé²ã®äŸã瀺ããŠããŸãã

å³3.ãã¬ãŒã¹ã®èšé²äžã®ãã¬ãŒã¹ã®ã¹ã¿ãã¯ïŒïŒaïŒãœãŒã¹ã³ãŒãïŒbïŒãã¬ãŒã¹ã®ã¹ã¿ãã¯ïŒcïŒãªããžããªã«ä¿åããããã¬ãŒã¹
- addDataïŒïŒã¡ãœããã®ã¢ã³ã«ãŒãããããšããŠããŒã¯ããããšãå®è¡ã¯èšé²ã€ã³ã¿ãŒããªã¿ãŒã«åãæ¿ãããã¡ãœãããã¬ãŒã¹ããã¬ãŒã¹ã¹ã¿ãã¯ã«é 眮ãããŸãã ãã®ã¡ãœããã¯ãä»®æ³getValueïŒïŒã¡ãœãããåŒã³åºããããŸã§æåããå®è¡ãããŸãã ä»®æ³åŒã³åºããè¡ããšããåŒã³åºãã¯ã©ã¹ãšåä¿¡ã¯ã©ã¹ã¯åŒã³åºããã¬ãŒã¹ã«ä¿åãããŸãã
- getValueïŒïŒã¡ãœãããå ¥åãããšãã¡ãœããã®æ°ãããã¬ãŒã¹ããã¬ãŒã¹ã®ã¹ã¿ãã¯ã«é 眮ããããã®äžã«èšé²ãç¶ç¶ãããŸãã
- getValueïŒïŒãæ»ããšã察å¿ãããã¬ãŒã¹ãã¹ã¿ãã¯ããååŸããããã¬ãŒã¹ã¹ãã¢ã«ä¿åãããŸãã ãã®åŸãgetDataïŒïŒãã¬ãŒã¹å ã®getValueïŒïŒãã¬ãŒã¹ãžã®ãã€ã³ã¿ãŒãä¿åããããšã«ããããã¬ãŒã¹ãæ¥ç¶ãããŸãã addDataïŒïŒã®å®è¡ãšæžã蟌ã¿ãç¶è¡ãããã«ãŒãããããŒã«å°éããŸãã
- ãµã€ã¯ã«ãèšé²ããããã«ãæ°ãããµã€ã¯ã«ãã¬ãŒã¹ãã¹ã¿ãã¯ã«ããã·ã¥ãããŸãã
- ã«ãŒãã®æåã®å埩ã®åŸãå®è¡ãã«ãŒãããããŒã«æ»ããšããã®ã«ãŒãã®ãã¬ãŒã¹ãã¹ã¿ãã¯ããååŸãããä¿åãããŸãã ã«ãŒãã®æ¬¡ã®å埩ã§ã¯ãæ°ããã«ãŒããã¬ãŒã¹ãã¹ã¿ãã¯ã«ããã·ã¥ãããŸãã 2çªç®ã®å埩ã¯æåã®å埩ãšåãæ¹æ³ã§å®è¡ããããããã·ã¹ãã ã¯ãã®ãããªãã¬ãŒã¹ããã§ã«èšé²ãããŠããããšãç解ããæ°ãããã¬ãŒã¹ã«ä¿åãããå€ãä¿åæžã¿ãã¬ãŒã¹ã®ã«ãŠã³ã¿ãŒãå¢ããã ãã§ãã
- ã«ãŒãã®3åç®ã®å埩ã¯ç°ãªãæ¹æ³ã§è¡ãããMath.absïŒïŒã¡ãœãããåŒã³åºããããã®ããã«æ°ããã¡ãœãããã¬ãŒã¹ãã¹ã¿ãã¯ã«é 眮ãããŸãã
- Math.absïŒïŒãæ»ããšã察å¿ãããã¬ãŒã¹ãä¿åãããåŒã³åºãå ã®ãã¬ãŒã¹ã«é¢é£ä»ããããŸãã
- ãã®åŸãå®è¡ã¯ã«ãŒãããããŒã«å°éããã«ãŒããçµäºããŸãã ãµã€ã¯ã«ãã¬ãŒã¹ã¯ã¹ã¿ãã¯ããååŸãããä¿åãããŸãã
- ã«ãŒããçµäºãããšãä»®æ³setValueïŒïŒã¡ãœãããåŒã³åºãããŸãã åŒã³åºãã¯ã©ã¹ãšåä¿¡ã¯ã©ã¹ã¯åŒã³åºããã¬ãŒã¹ã«ä¿åãããsetValueïŒïŒã«å ¥ããšæ°ããã¡ãœãããã¬ãŒã¹ãã¹ã¿ãã¯ã«ããã·ã¥ãããŸãã
- setValueïŒïŒãæ»ããšã察å¿ãããã¬ãŒã¹ãã¹ã¿ãã¯ããååŸãããä¿åãããåŒã³åºããã¬ãŒã¹ã«é¢é£ä»ããããŸãã
- æåŸã«ãaddDataïŒïŒã¡ãœãããè¿ãããã¹ã¿ãã¯ããååŸãããŠä¿åãããŸãã
- ãã®åŸãã¹ã¿ãã¯ã¯ç©ºã«ãªããå®è¡ã¯éåžžã®ã€ã³ã¿ãŒããªã¿ãŒã«æ»ããŸãã
ãã®äŸã§ã¯ãåŒã³åºãããã¡ãœãããšã«ãŒãã«ã€ããŠããã¬ãŒã¹ãã³ã³ãã€ã«ãããªãã£ãããšãæå³ããŠããŸããã getValueïŒïŒã¡ãœããã®ãã¬ãŒã¹ãããªã³ã³ãã€ã«ãããŠããå ŽåãgetValueïŒïŒãåŒã³åºããšãã¡ãœããã解éããã®ã§ã¯ãªããã³ã³ãã€ã«ããããã·ã³ã³ãŒããå®è¡ãããŸãã èšé²ã€ã³ã¿ãŒããªã¿ãŒã¯ãã¹ã¿ãã¯ã«æ°ããã¡ãœãããã¬ãŒã¹ãé 眮ã§ãããåŒã³åºãããã¡ãœããã®å¶åŸ¡ãããŒãäœæã§ããŸããã ãã®å Žåããã¬ãŒã¹ãèšé²ããã¢ãããŒãã§ã¯ãã¡ãœããã®å¢çãè¶ãããšãã«å¶åŸ¡ãããŒã«é¢ããç¹å®ã®æ å ±ã確å®ã«ä¿æã§ããŸããã§ããã ã³ã³ãã€ã«ãããã³ãŒããåŒã³åºãå¿ èŠã¯ãªãã代ããã«ãèšé²ã€ã³ã¿ãŒããªã¿ãŒã§ãã®ã³ãŒãã®å®è¡ãå°ãªããšã1å匷å¶ããå¿ èŠãªæ å ±ããã¹ãŠåä¿¡ããŸãã ãã ããããã«ãããã¢ããªã±ãŒã·ã§ã³ãããé·ã解éããããããèµ·åããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžããŸãã
æé«ã®èšé²ããã©ãŒãã³ã¹ã®ããã«ãé »ç¹ã«å®è¡ããããã¹ãŠã®æäœïŒç¹å®ã®åœä»€ã«é¢ããæ å ±ã®èšé²ãªã©ïŒã¯ãã¢ã»ã³ãã©ãŒãã³ãã¬ãŒãã®åœ¢åŒã§èšé²ã€ã³ã¿ãŒããªã¿ãŒã«çŽæ¥å®è£ ãããŸãã èšé²ããããã¬ãŒã¹ã®ä¿åãªã©ãããè€éãªæäœã¯ãCã§èšè¿°ãããã€ã³ã¿ãŒããªã¿ãŒã©ã³ã¿ã€ã ã«å®è£ ãããŸãã ãã¬ãŒã¹ãèšé²ããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå¹ççãªãã«ãã¹ã¬ããåããµããŒãããŠãããããJavaã®ã©ã®ã¹ã¬ããã§ãéåžžã®ã€ã³ã¿ãŒããªã¿ãŒãšèšé²ã€ã³ã¿ãŒããªã¿ãŒãåå¥ã«åãæ¿ããããšãã§ããŸãã åã¹ã¬ããã¯ãã¹ã¬ããããŒã«ã«ãããã¡ã䜿çšããŠãã¬ãŒã¹ãèšé²ããæé«ã®æžã蟌ã¿ããã©ãŒãã³ã¹ãå®çŸããŸãã
èšé²äžãè€æ°ã®ã¹ã¬ããããèšé²ããããã¬ãŒã¹ãä¿åããããŒã¿æ§é ã§åæã«åäœã§ããŸãã ã»ãšãã©ã®ã¢ã³ã«ãŒã§ã¯ãèšé²ããããã¬ãŒã¹ã®æ°ãéåžžã«å°ãªããããæ°ãããã¬ãŒã¹ãä¿åããå¿ èŠã¯ã»ãšãã©ãããŸããããå®è¡ã«ãŠã³ã¿ãŒã®å¢å ã¯åžžã«å¿ èŠã§ãã ãããã£ãŠãä¿åããããã¬ãŒã¹ã¯ãèªã¿åãæã«æå°æ°ã®ããã¯ãšã¢ãããã¯åœä»€ã䜿çšããããŒã¿æ§é ã«ä¿åããŸãã ã·ã¹ãã ãæ°ãããã¬ãŒã¹ãèŠã€ãããšæãããå Žåãä»ã®èšé²ã¹ã¬ããã®ãã®ããŒã¿æ§é ããããã¯ããããã¯äžã§ããã®ãã¬ãŒã¹ãæ¬åœã«æ°ãããã©ãããå確èªããŠããããªããžããªã«è¿œå ããŸãã ãã®åçŽãªæ¹æ³ã«ãããæãäžè¬çãªã±ãŒã¹ã§ã¯ãåæãšã¢ãããã¯ãã·ã³åœä»€ãåé¿ããããã«ãã¹ã¬ããã¢ããªã±ãŒã·ã§ã³ã®æžã蟌ã¿ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã
4.ãã¬ãŒã¹ã®ã¯ã蟌ã¿
ã¡ãœããã®ã€ã³ã©ã€ã³åã¯ãã¡ãœããåŒã³åºããå®éã®å®è¡å¯èœã³ãŒãã®ã³ããŒã«çœ®ãæããŸãã ã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã¯ãéçãšåçã«åé¡ã§ããŸãã
HotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ã¯ãåçŽãªéçã¡ãœããã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã䜿çšããŸãããã®ã¡ãœããã§ã¯ãã¡ãœãããµã€ãºãåºå®å¶éãšæ¯èŒãããŸãã ä»®æ³ã¡ãœããã¯ãéçã¯ã©ã¹éå±€åæïŒCHAïŒ[8]ã䜿çšããŠã€ã³ã©ã€ã³ã«ãªããŸãã ãã®åæã¯ãããŒãããããµãã¯ã©ã¹ã®ããããã«ãã£ãŠã¡ãœããããªãŒããŒã©ã€ããããŠãããã©ãããå€æããŸãããã®å Žåã楜芳çã«ã€ã³ã©ã€ã³åã§ããŸãã 次ã«ã楜芳çãªã€ã³ã©ã€ã³ã¡ãœããããªãŒããŒã©ã€ãããå¥ã®ãµãã¯ã©ã¹ãããŒãããããšãçæããããã·ã³ã³ãŒãã¯ç Žæ£ãããŸãã å¯Ÿç §çã«ãåçã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã¯ãããã¡ã€ã«ããã®æ å ±ã䜿çšããããã«åºã¥ããŠã¡ãœãããã€ã³ã©ã€ã³ãã©ããã決å®ããŸãã
ãã¬ãŒãµãŒJITã³ã³ãã€ã©ãŒã¯ããã¬ãŒã¹ã«é¢ããèšé²æ å ±ã䜿çšããŠãäž¡æ¹ã®ã¿ã€ãã®ãã¥ãŒãªã¹ãã£ãã¯ãåæã«ãµããŒãããŸãã ã¡ãœããã®ã€ã³ã©ã€ã³åãšåæ§ã«ããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã¯åŒã³åºããå®éã®å®è¡å¯èœã³ãŒãã®ã³ããŒã«çœ®ãæããŸãã ããã«ãããã³ã³ãã€ã«é åãå¢å ããããã©ãŒãã³ã¹ãåäžããŸãã
4.1ã åŸç¶ã€ã³ã©ã€ã³åã®å©ç¹
ã€ã³ã©ã€ã³åã®ãã¬ãŒã¹ã«ã¯ãã€ã³ã©ã€ã³åæ¹æ³ã«æ¯ã¹ãŠããã€ãã®å©ç¹ããããŸãã
- ãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã¯ãã¡ãœããå šäœã§ã¯ãªããé »ç¹ã«å®è¡ããããã¬ãŒã¹ã®ã¿ãåŠçããŸãã ãããã¯ã³ã³ãã€ã©ã¯ããããã¡ã€ã«æ å ±ã䜿çšããŠãã¡ãœããã®ã»ãšãã©äœ¿çšãããªãéšåã®ã³ã³ãã€ã«ãåé¿ããããšããŸã[9,25,26]ã ããã«ããããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åãšåæ§ã®å¹æãåŸãããšãã§ããŸãããããã¯åãªãè¿œå ã®äºæ¬¡ã¢ãããŒãã§ãã
- èšé²ããããã¬ãŒã¹ã«ã¯ãã¡ãœããã®ã©ã®éšåã䜿çšããã誰ãæ£ç¢ºã«äœ¿çšãããã«é¢ããç¶æ³äŸåæ å ±ãå«ãŸããŠããŸãã ãã®æ å ±ã¯ã¡ãœããã®å¢çãè¶ãããšãã«ä¿åãããäžè¬çã«éåžžã«é »ç¹ã«äœ¿çšããããç¹å®ã®éä¿¡è ãçŸåšå¿ èŠãšããªãã¡ãœããã®éšåãã€ã³ã©ã€ã³åããªãããã«äœ¿çšã§ããŸãã
- ãã¬ãŒã¹ã«ã¯ãä»®æ³ã³ãŒã«ã®åä¿¡è ã«é¢ããæ å ±ãå«ãŸããŠããããã¬ãŒã¹ããªã³ã¯ããçµæããã®æ å ±ãç¶æ³äŸåã§ãã åŒã³åºãã®ç¹å®ã®å Žæã¯ãéåžžã«ç¹å®ã®ã¿ã€ãã®åä¿¡è ãæã€ã¡ãœããã®ã¿ãåŒã³åºãããšãå€æããå ŽåããããŸãã ãã®æ å ±ã¯ãä»®æ³ã¡ãœããã®ç©æ¥µçãªã€ã³ã©ã€ã³åã«äœ¿çšã§ããŸãã ãããã¯ã³ã³ãã€ã©ã¯ãä»®æ³åŒã³åºãã®ç©æ¥µçãªã€ã³ã©ã€ã³åã®ããã«ãããã¡ã€ã«æ å ±ã䜿çšããŸãããã»ãšãã©ã®ã³ã³ãã€ã©ã§ã¯ãã®æ å ±ã¯ç¶æ³äŸåã§ã¯ãããŸããã
4.2ã å®è£
ã€ã³ã©ã€ã³åã¯ãçŸåšã®åŒã³åºããµã€ãã§ã€ã³ã©ã€ã³åããå¿ èŠããããã¬ãŒã¹ã®æ倧ãµã€ãºãèšç®ããããšããå§ãŸããŸãã ããã¯äž»ã«ãåŒã³åºãã®ãã®å Žæãšã®é¢é£æ§ã«äŸåããŸãïŒããŒã5.1ãåç §ïŒã 次ã«ãã³ãŒã«ã®ãã®å Žæã§åŒã³åºããããã¬ãŒã¹ãã€ã³ã©ã€ã³åãã䟡å€ããããã©ããã決å®ãããã¥ãŒãªã¹ãã£ãã¯ã䜿çšãããŸãã ãã¬ãŒã¹ãå€ããããšã³ãŒããè¥å€§åãããããããã¯ãããã®ãã¬ãŒã¹ã®ãµã€ãºã«å€§ããäŸåããŸãã
ã€ã³ã©ã€ã³åã®ãã¬ãŒã¹ã¯ãéåžžã¯ãã¬ãŒã¹ãåä¿¡è ã®ãã€ãã³ãŒãå šäœãã«ããŒããªãããšãé€ããŠãã€ã³ã©ã€ã³åã¡ãœããã«äŒŒãŠããŸãã ã€ã³ã©ã€ã³åããå¿ èŠããããã¬ãŒã¹ãååŸããããããã°ã©ããäœæããã¡ãœããåŒã³åºãããã®ã°ã©ãã®å 容ã«çœ®ãæããŸãã 次ã«ãã€ã³ã©ã€ã³ãã€ãã³ãŒãå ã«ãããã¹ãŠã®ãªã¿ãŒã³æäœããcallåœä»€ã«ç¶ãåœä»€ã«ããçŽæ¥ãžã£ã³ãã«çœ®ãæããããäŸå€ã¹ããŒåœä»€ãéä¿¡è ã®ãã¬ãŒã¹ã«ããäŸå€ãã³ãã©ã«é¢é£ä»ããããŸãã
å³4ïŒaïŒã¯ã2ã€ã®æ¹æ³ã®å¶åŸ¡ãããŒã°ã©ãã瀺ããŠããŸãã ãããã®ã¡ãœãããééãã2ã€ã®ãã¬ãŒã¹ãå³4ïŒbïŒã«ç€ºããŸãã ãã¬ãŒã¹ã®èšé²ãããªãé »ç¹ã«å®è¡ããå§ããåŸãèšé²ããããã¬ãŒã¹ã¯ã³ã³ãã€ã«ã®ããã«éä¿¡ãããŸãã å³4ïŒcïŒã«ããã¬ãŒã¹ãã€ã³ã©ã€ã³åããåŸã«åŸãããã°ã©ãã瀺ããŸãïŒãã ããã³ã³ãããŒã«ã°ã©ãã®æ瀺çãªè€è£œã¯ãããŸããïŒã 次ã«ããã¬ãŒã¹ã°ã©ããæé©åããããã·ã³ã³ãŒãã«ã³ã³ãã€ã«ãããŸããåé€ããããããã¯ã®ãããããä»åŸå®è¡ããå¿ èŠãããå Žåãã³ã³ãã€ã«ãããã³ãŒãã¯ã€ã³ã¿ãŒããªã¿ãŒã«å¯ŸããŠæé©åãããŸããã

å³4.ã€ã³ã©ã€ã³åããã¬ãŒã¹ããã¡ãœããïŒïŒaïŒå¶åŸ¡ãããŒã°ã©ãïŒbïŒãã¬ãŒã¹ãèšé²ïŒcïŒã€ã³ã©ã€ã³ååŸ
ã®ãã¬ãŒã¹ã°ã©ããã¬ãŒã¹ã°ã©ãããããã¯3ãå«ãŸããŠããŸãããããã¯ãå¶åŸ¡ãããŒã®ããŒãžãåé¿ãããããçŽ æŽãããã¢ã€ãã¢ã§ããããŒãžãè¡ãããå Žåãããã«ããã³ã³ãã€ã©ã®æé©åãå¶éãããŸããå®è¡äžå¯èœãªãšããžãåé€ãããšããã·ã³ã³ãŒããããæé©åãããŸãã
ã»ãšãã©ã®å ŽåãçŸåšã®éä¿¡è ã«ãã£ãŠåŒã³åºããããã¬ãŒã¹ã®ã¿ãã€ã³ã©ã€ã³åããŸãããã ããéä¿¡è ã«å¯ŸããŠãã¬ãŒã¹ã¬ã³ãŒããæå¹ã«ãªãåã«åä¿¡è ã®ãã¬ãŒã¹ãã³ã³ãã€ã«ãããå Žåããã®éä¿¡è ã¯å¿ èŠãªã³ã³ãã€ã«æžã¿ãã¬ãŒã¹ãç¥ããŸããããããã®å Žåãéä¿¡è ãåä¿¡è ã«æž¡ãç¹å®ã®ãã©ã¡ãŒã¿ãŒã䜿çšããŠãããããçŸåšã®éä¿¡è ãåŒã³åºãããšãã§ããªãããšã蚌æã§ãããã®ãé€ãããã¹ãŠã®åä¿¡è ã®ãã¬ãŒã¹ã¯ã€ã³ã©ã€ã³åã«é©ããŠãããšæ§ããã«ä¿¡ããŠããŸãããã®èåŸã«ã¯ããããã¯ã³ã³ãã€ã©ã®ãããã³ãŒãé€å»ïŒDCEïŒã«äŒŒããã¯ãããžããããŸãããããŒã¹ãããã¯ã®ä»£ããã«ãã¬ãŒã¹å šäœãåé€ã§ããŸããã€ã³ã©ã€ã³ãã¬ãŒã¹ã®æ°ãããã«æžããããã«ããŸãã«ããå®è¡ãããªããã¬ãŒã¹ãé€å€ããŸãïŒããŒã4ãåç §ïŒã5ïŒã
ä»®æ³ã¡ãœãããåŒã³åºãããã«ãèšé²ããããã¬ãŒã¹ã«é¢ããæ å ±ã¯HotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ããã®CHAãšçµã¿åããããçŸåšã®åŒã³åºãå Žæã®ç¹å®ã®åä¿¡è ã¯ã©ã¹ã決å®ã§ããŸãã CHAã1ã€ã®ç¹å®ã®ã¿ãŒã²ããã¡ãœãããå®çŸ©ããŠããå ŽåãåŒã³åºãããã¡ãœããã®ãã¬ãŒã¹ã¯ãã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãã¡ãœãããã€ã³ã©ã€ã³åããã®ãšåãæ¹æ³ã§ã€ã³ã©ã€ã³åãããŸãã CHAãããã€ãã®å¯èœãªã¿ãŒã²ããã¡ãœãããèŠã€ããå Žåãèšé²ãããéä¿¡åŽã¯ã©ã¹ã䜿çšããŠãã¡ãœãããã¬ãŒã¹ãç©æ¥µçã«ã€ã³ã©ã€ã³åããããšããŸãããããè¡ãããã«ãå®è¡æãã§ãã¯ãè¿œå ããŸããããã¯ãå®éã®åä¿¡è ã¿ã€ããæåŸ ãããã¿ã€ããšæ¯èŒããã¿ã€ããäžèŽããªãå Žåã¯ã€ã³ã¿ãŒããªã¿ãŒãéæé©åããŸãã CHAãšç¶æ³äŸåã®ãã¬ãŒã¹æ å ±ãçµã¿åãããããšã«ãããã»ãšãã©ã®ãããã¯ã³ã³ãã€ã©ãããé »ç¹ã«ä»®æ³ã¡ãœãããã€ã³ã©ã€ã³åã§ããŸããæ¬åœã«å¿ èŠãªå Žåã«ã®ã¿ã©ã³ã¿ã€ã ãã§ãã¯ãäœæããŸãã
ã¡ãœããã®ãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã«å ããŠã埪ç°ãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã®ãµããŒããéå§ããŸãããå³5ïŒaïŒã¯ãå·¡åãã¬ãŒã¹ãåŒã³åºããã¡ãœããã®ãã¬ãŒã¹çšã«äœæããããã¬ãŒã¹ã®ã°ã©ãã瀺ããŠããŸããã«ãŒããã¬ã€ã«ã¯ãŸã ã€ã³ã©ã€ã³åãããŠããªããããã«ãŒãã¯ãã©ãã¯ããã¯ã¹ãšããŠè¡šç€ºãããŸãããããã¯ã³ã³ãã€ã©ãŒã«ã¯ãŸã äžæã§ãã次ã®ã¹ãããã§ã¯ã埪ç°ãã¬ãŒã¹å°çšã®åå¥ã®ãã¬ãŒã¹ã°ã©ããäœæããŸã-å³5ïŒbïŒãããã«ã€ã³ã©ã€ã³åãããšãéä¿¡åŽã°ã©ãã®ãã©ãã¯ããã¯ã¹ãã«ãŒãã°ã©ãã«çœ®ãæãããããžã£ã³ãåœä»€ã䜿çšããŠãã«ãŒãããã®ãã¹ãŠã®åºå£ãæ£ããç¶ç¶ãããã¯ã«é¢é£ä»ããããŸãããã®äŸã§ã¯ããããã¯bã¯ãããã¯eã«æ¥ç¶ããããããã¯cã¯ãããã¯dã«æ¥ç¶ãããŠããŸããããã«ãããå³5ïŒcïŒã«ç€ºããã¬ãŒã¹ã°ã©ãã衚瀺ãããŸãã

å³5.ãµã€ã¯ã«ãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åïŒïŒaïŒã¡ãœãããã¬ãŒã¹ã°ã©ãïŒbïŒãµã€ã¯ã«ãã¬ãŒã¹ã°ã©ãïŒcïŒã«ãŒã
ã€ã³ã©ã€ã³ååŸã®ç¶æ ã«ãŒããã¬ãŒã¹ã€ã³ã©ã€ã³åäžãç¹å®ã®ãµã€ã¯ã«ã§èšé²ããããã¹ãŠã®ãã¬ãŒã¹ãã€ã³ã©ã€ã³åã®åè£ã§ãããšèããŸãããããå¿ èŠãªã®ã¯ããµã€ã¯ãªãã¯ãã¬ãŒã¹ãåŒã³åºãåŽãã¬ãŒã¹ã«çŽæ¥ãªã³ã¯ãããªããããã³ã³ããã¹ãåºæã®åŒã³åºãæ å ±ãå©çšã§ããªãããã§ãããã ãããã®ãµã€ã¯ã«ã«å«ãŸãããã©ã¡ãŒã¿ãŒãšããŒã«ã«å€æ°ã«é¢ããæ å ±ã䜿çšãããããã®ãããã§ãçŸåšã®éä¿¡è ãåŒã³åºãããšãã§ããªãããšã蚌æã§ãããã¬ãŒã¹ãåé€ããŸããããã«ãé »ç¹ã«å®è¡ãããªããã¬ãŒã¹ãåé€ããŸãã
ããè€éãªã±ãŒã¹ã¯ãã€ã³ã©ã€ã³ã«ãŒãã«åºåãããããã®ç¶ç¶ãéä¿¡è ã°ã©ãã«ååšããªãå Žåã§ããå³5ïŒaïŒã§ã¯ãããšãã°ããããã¯dã¯èšé²ãããŠããªãããã«æ¶ããå ŽåããããŸããããã«ãããããããå³5ïŒbïŒã«ç€ºãããã«ããµã€ã¯ã«ããã®äž¡æ¹ã®åºå£ã¯èšé²ããã埪ç°ãã¬ãŒã¹ã§è¡šãããšãã§ããŸãããããçºçããå¯èœæ§ã®ããæ¹æ³ã®1ã€ã¯ãã¡ãœãããã¬ãŒã¹ãèšé²ãããåã«ã«ãŒããã¬ãŒã¹ãã³ã³ãã€ã«ãããããšã§ããæå[15]ãç¶ç¶ã«é¢é£ä»ããããªãã£ãã«ãŒãã®ãã¹ãŠã®åºå£ã«æé©åãã€ã³ããæ瀺çã«è¿œå ããããšã§ãã®åé¡ãåé¿ããã«ãŒãããã®ãã¹ã«æ²¿ã£ãŠçµäºãããã³ã«å®è¡ãæé©åãããŸãããããã§ãçŸåšã®éä¿¡è ã«ã¯äžæãªããµã€ã¯ã«ã®çµäºã§çµãã埪ç°ãã¬ãŒã¹ãåé€ããŸããããã«ãããã€ã³ã©ã€ã³åã®åè£ã®æ°ãæžããçæããããã·ã³ã³ãŒãã®éãæžããŸãã
4.3ã ã³ã³ããã¹ãäŸå
ç§ãã¡ã®èšé²ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ããã¬ãŒã¹ã®ãµã€ãºã1ã¡ãœããã®åºå®æ·±ãã«å¶éããŠããããããã¬ãŒã¹ã³ã³ãã€ã©ã¯ãã¬ãŒã¹ã®ç©æ¥µçãªã€ã³ã©ã€ã³åã«å€§ããäŸåããŠããŸã[15]ããã¬ãŒã¹èšé²ã¡ã«ããºã ã¯ãã¡ãœãããå¢çãæ¥ãããšãã«ç¶æ³äŸåæ å ±ãä¿åãããããåéä¿¡è ã¯ãåä¿¡è ã®ã©ã®éšåãã€ã³ã©ã€ã³åããå¿ èŠãããããããããŸããããã«ãããã³ã³ãã€ã©ã¯ãäžè¬çã«éåžžã«é »ç¹ã«å®è¡ããããçŸåšã®éä¿¡è ã«ã¯é¢ä¿ã®ãªãã¡ãœããã®éšåã®ã€ã³ã©ã€ã³åãåé¿ã§ããŸããããã«ãããçæããããã·ã³ã³ãŒãã®éãæžããããŒãžãã€ã³ãã®æ°ãæžããŸããããã¯éåžžãããŒã¯ããã©ãŒãã³ã¹ã«ãã©ã¹ã®å¹æããããããŸãã
ãããã¯ã³ã³ãã€ã©ã¯ããããã¡ã€ã«æ å ±ã䜿çšããŠãå®è¡ãããªãã³ãŒããåé€ããŸãããã ãããããã¡ã€ã«å ã®æ å ±ã¯éåžžãã³ã³ããã¹ãäŸåã§ã¯ãªããããã¡ãœããã®ã©ã®éšåãã©ã®éä¿¡è ãæ£ç¢ºã«å¿ èŠãšãããã決å®ã§ããŸããããããã¡ã€ã«å ã®ç¶æ³äŸåæ å ±ã¯ãååãšããŠããããã¯ã³ã³ãã€ã©çšã«ãäœæã§ããŸããããã¬ãŒã¹ã®äœæãšãã¬ãŒã¹ã³ã³ãã€ã©ã«ããããã®ããã»ã¹ãå€§å¹ ã«ç°¡çŽ åããããšèããŠããŸãã
å³6ã¯ãJDKã®ArrayListã¯ã©ã¹ã®indexOfïŒïŒã¡ãœããã瀺ããŠããŸãã

å³6. ArrayList.indexOfïŒïŒã¡ãœãã
ã¡ãœããã®æåã®éšåã¯ãnullæ€çŽ¢ã®ãŸããªã±ãŒã¹ãåŠçãã2çªç®ã®éšåã¯ãnull以å€ã®ãªããžã§ã¯ãã®ãªã¹ããæ€çŽ¢ããŸããã»ãšãã©ã®éä¿¡è ã«ã¯ãã¡ãœããã®2çªç®ã®éšåã®ã¿ãå¿ èŠã§ãããã ããã¡ãœããã®æåã®éšåãå®è¡ããã¢ããªã±ãŒã·ã§ã³ã«å°ãªããšã1人ã®éä¿¡è ã衚瀺ãããå Žåããããã¯ã³ã³ãã€ã©ãããã¡ã€ã«ã®æ å ±ã¯ãæåã®éšåãå®è¡ãããããšã瀺ããŸãããããã£ãŠããããã¯ã³ã³ãã€ã©ã¯indexOfïŒïŒã¡ãœãããã€ã³ã©ã€ã³åãããã³ã«ããã®ãã£ãã«å®è¡ãããªãã³ãŒããã€ã³ã©ã€ã³åããŸããç¶æ³äŸåã®æ å ±ããããéä¿¡è ãã¡ãœããã®äžéšãå¿ èŠãšããªãå Žåããã¬ãŒãµã³ã³ãã€ã©ã¯äžèšã®åé¡ãåé¿ã§ããŸãã
ã€ã³ã©ã€ã³åã¯ã€ã³ã©ã€ã³åããå Žåã«èªã¿ãããããããã¬ãŒã¹ã³ã³ãã€ã©ã¯ãããç©æ¥µçãªã€ã³ã©ã€ã³åããªã·ãŒã䜿çšã§ããŸããããšãã°ãããªã¥ãŒã ã倧ããããŠå®å šã«ã€ã³ã©ã€ã³åã§ããªãã¡ãœããã«åŸããã¬ãŒã¹ãã€ã³ã©ã€ã³åã§ããŸããããã«ããããããã¯ã³ã³ãã€ã©ãããå€ãã®Javaãã€ãã³ãŒããã€ã³ã©ã€ã³åããããšãªããã³ã³ãã€ã«é åãå¢å ããŸããç¹ã«ãè€éãªã¢ããªã±ãŒã·ã§ã³ã®å Žåãããã«ãããã·ã³ã³ãŒããæé©åãããããŒã¯ããã©ãŒãã³ã¹ã«ãã©ã¹ã®å¹æããããŸãã
å³7ïŒaïŒã¯ãAppendableãã©ããããappendLineïŒïŒã¡ãœãããæäŸããLineBuilderã¯ã©ã¹ã瀺ããŠããŸãã

å³7.ç¶æ³äŸåæ å ±ïŒïŒaïŒãã¿ãŒã³ïŒbïŒå¯èœãªã¡ãœããåŒã³åºãïŒcïŒåªå ã€ã³ã©ã€ã³å
è€æ°ã®LineBuilderãªããžã§ã¯ãã䜿çšããŠPrintStreamãStringBuilderãStringBufferãBufferedWriterãªã©ã®ç°ãªãã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãã©ããããå Žåã9è¡ç®ãš10è¡ç®ã®appendïŒïŒåŒã³åºãã¯ãå³7ïŒbïŒã«ç€ºãããã«ã€ã³ã©ã€ã³åã容æã§ã¯ãªãããªã¢ãŒãã£ãã¯åŒã³åºãã«ãªããŸãã
ããšãã°ãappendLineïŒïŒã§ã®ã¹ã±ãžã¥ãŒãªã³ã°ãåŒã³åºãã®å Žæã«äŸåããå ŽåãåŒã³åºãã®ããŸããŸãªå Žæã§ç°ãªãLineBuilderãªããžã§ã¯ãã䜿çšããããããå³7ïŒcïŒã«ç€ºãããã«ãã€ã³ã©ã€ã³åãæšå¥šãããŸãããã¬ãŒã¹ã«é¢ããç¶æ³äŸåæ å ±ã«ã¯ãä»®æ³ã³ãŒã«ã®åä¿¡è ãæ ŒçŽãããŸãããããã£ãŠããã¬ãŒã¹ã³ã³ãã€ã©ã¯ãå³7ïŒcïŒãããã®åªå ã€ã³ã©ã€ã³åãæ£ç¢ºã«å®è¡ããå©çšå¯èœãªç¶æ³äŸåæ å ±ã䜿çšããŠãä»®æ³åŒã³åºãã®ç©æ¥µçãªã€ã³ã©ã€ã³åãè¡ãããšãã§ããŸããã³ã³ãã€ã©ãç¶æ³äŸåæ å ±ããããã¡ã€ã«ã«æžã蟌ãŸããæ€åºããããã¹ãŠã®åïŒprintStreamãStringBuilderãStringBufferãbuffer.Reader with buffer.appendïŒïŒãªã©ïŒãåéããã ãã®å Žåããã®ãããªä»®æ³åŒã³åºããã€ã³ã©ã€ã³åããã®ã«ååãªæ å ±ãèŠã€ãããŸããã
ãã¬ãŒã¹ã³ã³ãã€ã©ã®ä»¥åã®ããŒãžã§ã³ã§ã¯ãåŒã³åºãããã¡ãœãããåžžã«åãåä¿¡è ã¿ã€ãã«å±ããããšããã¬ãŒã¹ã¬ã³ãŒãã«ç€ºãããŠããå Žåãã¿ã€ãæ å ±ã®ã¿ã䜿çšããŠããŸããããã®ãããªã€ã³ã©ã€ã³ãã¬ãŒã¹ã¯ããã¿ã€ãã¬ãŒããã«ãã£ãŠä¿è·ãããŸãããã¿ã€ãã¬ãŒããã¯ãå®éã®åä¿¡è ã®ã¿ã€ããäºæ³ãããã¿ã€ããšæ¯èŒããã¿ã€ããäžèŽããªãå Žåã¯ã€ã³ã¿ãŒããªã¿ãŒã«å¯ŸããŠéæé©åããŸãããã®èšäºã§ã¯ããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã次ã®æ¹æ³ã§æ¡åŒµããŸããã
- , , . , , , , (override) . , « » (method guard), . , .
- , , « » , switch, . , , . , .
- â . 8(a) , . , . , 8(b), 2' / , . switch , . , .

8. : (a) (b)
HotSpotãµãŒããŒã³ã³ãã€ã©ã¯ãããªã¢ãŒãã£ãã¯ã³ãŒã«ãã€ã³ã©ã€ã³åããŸãããåŒã³åºãããã¡ãœããã®æ°ã¯æ倧2ã€ã«å¶éãããŸããããã¯ãå€æ°ã®ã¡ãœãããç°¡åã«ã³ãŒãã®èšåŒµãåŒãèµ·ããå¯èœæ§ãããããã§ãããã¬ãŒãµãŒã³ã³ãã€ã©ãŒã¯ãèšé²ããããã¬ãŒã¹ã«é¢ããç¶æ³äŸåæ å ±ãæã£ãŠãããããã¡ãœããã®äžéšãããéžæçã«ã€ã³ã©ã€ã³åããŸãããããã£ãŠãå šäœçã«ã¯é »ç¹ã«å®è¡ããããã®ã®ãçŸåšã®éä¿¡è ã«ã¯äžèŠãªã¡ãœããã®äžéšãã€ã³ã©ã€ã³åããããšãåé¿ã§ããŸããããã«ãèšé²ãããåæ å ±ãç¶æ³äŸåã§ãããããã€ã³ã©ã€ã³åã®åè£ã®æ°ãæžããŸãããããã£ãŠããã¬ãŒãµãŒã³ã³ãã€ã©ã«ã¯ã€ã³ã©ã€ã³ã¡ãœããã®æ°ã«å¶éã¯ãããŸããããç¹å®ã®åŒã³åºãå Žæã®å®è¡é »åºŠã«å¿ããŠããã¹ãŠã®ã€ã³ã©ã€ã³ã¡ãœããã®ç·æ°ãå¶éããŸããããªã¢ãŒãã£ãã¯ã³ãŒã«ã®æ°ãå€ãã¢ããªã±ãŒã·ã§ã³ã®å Žåãããã«ãããã€ã³ã©ã€ã³åãå€§å¹ ã«æ¹åãããã³ãŒãã®éå°ãªèšåŒµã®åé¡ãªãã«ããã©ãŒãã³ã¹ãåäžããŸãã
4.4ã ãã€ãã£ãã¡ãœãã
Javaã³ãŒãã¯ãJava Native InterfaceïŒJNIïŒã䜿çšããŠãã€ãã£ãã¡ãœãããåŒã³åºãããšãã§ããŸãããã®ã¡ã«ããºã ã¯äž»ã«ãä»ã®æ¹æ³ã§ã¯Javaã§è¡šçŸã§ããªããã©ãããã©ãŒã åºæã®æ©èœãå®è£ ããããã«äœ¿çšãããŸãããããã®ã¡ãœããã«å¯ŸããŠJavaã³ãŒãã¯å®è¡ãããªãããããã¬ãŒã¹ãæžã蟌ãããšã¯ã§ããŸããã
HotSpotã¯ãæãéèŠãªãã©ãããã©ãŒã åºæã®ã¡ãœããã«ã³ã³ãã€ã©çµã¿èŸŒã¿é¢æ°ã䜿çšãããããJITã³ã³ãã€ã©ã¯ãã®ãããªã¡ãœãããã€ã³ã©ã€ã³åã§ããŸãããã¬ãŒãµãŒJITã³ã³ãã€ã©ãŒããã³ã³ãã€ã©ãŒã®çµã¿èŸŒã¿é¢æ°ãšããŠå®è£ ããããã€ãã£ãã¡ãœããã®åŒã³åºããå«ããã¬ãŒã¹ã°ã©ããã³ã³ãã€ã«ããå Žåããããã¯ã³ã³ãã€ã©ãŒãšãŸã£ããåãã€ã³ã©ã€ã³å±éãè¡ããŸãããã ãããã¬ãŒãµãŒã³ã³ãã€ã©ã«ã¯1ã€ã®å©ç¹ããããŸãããã¬ãŒã¹ã¯ã¡ãœãããããå°ããããããã¬ãŒãµãŒã³ã³ãã€ã©ã¯ããããã¯ã³ã³ãã€ã©ã®ã€ã³ã©ã€ã³Javaã¡ãœãããããç©æ¥µçã«ãã¬ãŒã¹ãã€ã³ã©ã€ã³åã§ããŸããããã«ãããã³ã³ãã€ã«ã®ç¯å²ãæ¡åŒµããããã€ãã£ãã¡ãœãããåŒã³åºãã³ãŒãã¯ããã®ãã€ãã£ãã¡ãœããã«å ¥ããã©ã¡ãŒã¿ãŒãæ£ç¢ºã«èªèããŸãã JITã³ã³ãã€ã©ã¯ãã®æ å ±ã䜿çšããŠãã€ã³ã©ã€ã³ã³ã³ãã€ã©çµã¿èŸŒã¿é¢æ°ãç©æ¥µçã«æé©åã§ããŸãã
å³9ïŒaïŒã¯ãããªããã£ãé åã®ã³ããŒã«äœ¿çšããããã€ãã£ãSystem.arraycopyïŒïŒã¡ãœãããå®è£ ããããã®æ¬äŒŒã³ãŒãã瀺ããŠããŸãã

å³9.ããªããã£ãé åãã³ããŒããSystem.arraycopyïŒïŒã¡ãœããã®ç䌌ã³ãŒãïŒïŒaïŒéæé©åã³ãŒãïŒbïŒæé©åã³ãŒã
System.arraycopyïŒïŒã«æž¡ããããã©ã¡ãŒã¿ãŒã«é¢ããã©ã®æ å ±ãã³ã³ãã€ã©ãŒã«ç¥ãããŠãããã«å¿ããŠãã³ã³ãã€ã©ãŒã¯çµã¿èŸŒã¿é¢æ°ãæé©åã§ããŸããå³9ïŒbïŒã¯ãã³ã³ãã€ã©ãŒããã©ã¡ãŒã¿ãŒå€ãæé©ã«æŽ»çšã§ããã¡ãœããã®æé©åããŒãžã§ã³ã瀺ããŠããŸãããã®ç¹å®ã®äŸã«å¿ èŠãªãã©ã¡ãŒã¿ãŒæ å ±ã¯ããœãŒã¹é åãšå®å é åãSystem.arraycopyïŒïŒãã€ã³ã©ã€ã³ã§ããåãã³ã³ãã€ã«é åã«ããå Žåã«å©çšå¯èœã«ãªããŸããã€ãŸããã³ã³ãã€ã«é åãå¢ããããšã§ãã€ã³ã©ã€ã³ã³ã³ãã€ã©çµã¿èŸŒã¿é¢æ°ã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
4.5ãã¬ãŒã¹ãã£ã«ã¿ãªã³ã°
ãã¬ãŒã¹ããã§ã«èšé²ãããŠããå Žåããã®ãã¬ãŒã¹ãéåžžã«éèŠã§ãããé »ç¹ã«å®è¡ãããå¯èœæ§ãé«ããªããŸãããã ããèšé²ããããã©ãã¯ããŸãã«ããå®è¡ãããªãå ŽåããããŸãããããã®ãã¬ãŒã¹ãæšãŠãããšã§ãéèŠãªãã¹ã®ã¿ãã³ã³ãã€ã«ãããããšãä¿èšŒã§ããŸããå³10ïŒaïŒã¯ãèšé²ããããã¹ãŠã®ãã¬ãŒã¹ãããŒãžããåŸã®ãã¬ãŒã¹ã®ã°ã©ãã瀺ããŠããŸããã°ã©ãã®ç«¯ã«ã¯ãå®è¡é »åºŠã泚éãšããŠä»ããããŠããŸãã

å³10.ãŸãã«ããå®è¡ãããªããã¬ãŒã¹ã®ãã£ã«ã¿ãªã³ã°ïŒïŒaïŒå ã®ãã¬ãŒã¹ã°ã©ãïŒbïŒãã£ã«ã¿ãªã³ã°åŸã®ãã¬ãŒã¹ã°ã©ã
åãããã¯ã«ã€ããŠãæãé »ç¹ã«å®è¡ãããåºåãšããžã決å®ãããã®åšæ³¢æ°ãåããããã¯ã®ä»ã®ãã¹ãŠã®åºåãšããžãšæ¯èŒããŸãã次ã«ã100åã®1ã®é »åºŠã§ãšããžãåé€ããŸãããã¹ãŠã®ãããã¯ãåŠçããåŸã䜿çšã§ããªããããã¯ãã°ã©ãããåé€ããŸããå³10ïŒbïŒã¯ããã£ã«ã¿ãªã³ã°åŸã®çµæã®ã°ã©ãã瀺ããŠããŸãã
ãã¬ãŒã¹ã«é¢ããèšé²ãããæ å ±ã¯ãç¹å®ã®æéæ ã§ã®ã¿èŠ³å¯ãããããã°ã©ã ã®åäœãä¿åããŸããå®è¡ã®åŸã®æ®µéã§ã¯ããã£ãã«å®è¡ãããªãïŒãããã£ãŠãªã¢ãŒãã®ïŒãã¹ãåã³éèŠã«ãªãå¯èœæ§ããããŸããããã°ã©ã ã®åäœã¯æéãšãšãã«å€åããŸããäºåã«ã³ã³ãã€ã«ãããŠããªããã¹ã®å®è¡ãéå§ããããããããã«ããé »ç¹ã«æé©åã解é€ãããŸããäžå¿ èŠã«é »ç¹ã«æé©å解é€ãæ€åºããããšãå€ãã³ã³ãã€ã«æžã¿ãã·ã³ã³ãŒãã¯ç Žæ£ãããæ°ããã³ã³ãã€ã«ãéå§ãããŸãããã®ã³ã³ãã€ã«ã«ãããé »ç¹ã«æé©åã解é€ãããã±ãŒã¹ã®ãã¬ãŒã¹ã®ãã£ã«ã¿ãªã³ã°ãåé¿ãããŸãã
ãã¬ãŒã¹ã®ãã£ã«ã¿ãªã³ã°ã«ã¯ãåå¥ã«å¯ŸåŠããå¿ èŠãããããã€ãã®é£ããã±ãŒã¹ããããŸãã
- , , (. 5( c )). , . , , . .
- . , . , , .
5.
ãã®éšåã§ç€ºããããã¹ãŠã®ã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã¯ãæåã«åŒã³åºãå Žæã®é¢é£æ§ãèšç®ãã次ã«é¢é£æ§ã®å€ã䜿çšããŠã€ã³ã©ã€ã³åãããµã€ãºãèšç®ãããšããç¹ã§é¡äŒŒããŠããŸããã€ã³ã©ã€ã³åã®å¿ èŠæ§ã«é¢ããå ·äœçãªæ±ºå®ã¯ãã€ã³ã©ã€ã³åããããšã決å®ãããã¬ãŒã¹ã®å®éã®ãµã€ãºãšæ倧ãµã€ãºã®åçŽãªæ¯èŒã§ããè©äŸ¡ã®ããã«ãããã€ãã®ãã¥ãŒãªã¹ãã£ãã¯ãšããŸããŸãªé¢é£åºŠèšç®ã¢ã«ãŽãªãºã ã®çµã¿åããã䜿çšããŸããã
5.1ã åŒã³åºããµã€ãã®é¢é£æ§
åŒã³åºãã®å Žæã®é¢é£æ§ã¯ããã®åŒã³åºãã®å Žæãé 眮ãããŠãããã¬ãŒã¹ã°ã©ãå ã®ãããã¯ã®é¢é£æ§ã«ãã£ãŠæ±ºãŸããŸãã 3ã€ã®ç°ãªãé¢é£åºŠèšç®ã¢ã«ãŽãªãºã ããã¹ãããå³11ã«ç€ºããã¬ãŒã¹ã°ã©ãAãšBã®2ã€ã®äŸã䜿çšããŠãã®åäœã説æããŸããã

å³11.ç°ãªãé¢é£åºŠèšç®ã¢ã«ãŽãªãºã ïŒïŒaïŒå®è¡åæ°ã®ã«ãŠã³ãïŒbïŒã·ã³ãã«ïŒcïŒæãé »ç¹ãªãã¬ãŒã¹ïŒdïŒãã¹ããŒã¹ã®
äŸAã¯ãåäžã®ãããã¯ãæã€å¯èœæ§ãäœã4ã€ã®ç°ãªããã¬ãŒã¹ããæ§ç¯ãããŠããŸããäŸBã¯ã4ã€ã®ãã¬ãŒã¹ã§æ§ç¯ãããã°ã©ããè¡šããŠããŸããããããã®åãããã¯ã¯å°ãªããšã1ã€ä»¥äžã®ãã¬ãŒã¹ã«å ±éã§ãã
ãããã¯ã®é¢é£æ§ãèšç®ããã«ã¯ããŸãåãããã¯ãèšé²ããããã¬ãŒã¹ãå®è¡ãããé »åºŠã決å®ããŸããå³11ïŒaïŒã¯ãåãããã¯ã«å¯Ÿå¿ããå®è¡é »åºŠã®æ³šéãä»ããããã°ã©ãã瀺ããŠããŸãã次ã«ãå®è¡é »åºŠãåæå€ã§å²ãããšã«ãããåãããã¯ã®é¢é£æ§ãèšç®ããŸãããã®å€ã«å¿ããŠãé¢é£æ§ã®ã¹ã±ãŒã«ãç°ãªããŸãã次ã®ã¢ã«ãŽãªãºã ã®ããããã䜿çšããŠãåæå€ãéžæããŸãã
- Simple : â , . ]0,1], , , 11(b).
- Most frequent trace : , , - . , , , , . , , , ]0,1] , . 11( c ), , , 1, B.
- Path-based : . . «» , , . (. 11(d)). , . , , , , , , [1; â], ]0,1[.
5.2ãæ§æ
éçããã³åçã®15ã®ã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ããå§ããŸãããåãã¥ãŒãªã¹ãã£ãã¯ã«ã€ããŠãé©åãªãã©ã¡ãŒã¿ãŒã®äœç³»çãªæ€çŽ¢ãå®è¡ããŸããããã®è©äŸ¡äžããã¹ãŠã®åçãã¥ãŒãªã¹ãã£ãã¯ã¯ãã¹ãŠã®éçãã¥ãŒãªã¹ãã£ãã¯ãããåªããŠããããããã®èšäºã§ã¯éçãã¥ãŒãªã¹ãã£ãã¯ã®è©³çŽ°ãªçµæã¯ç€ºããŸãããããã«ãè¯å¥œãªããŒã¯ããã©ãŒãã³ã¹ãŸãã¯å°éã®çæããããã·ã³ã³ãŒãã瀺ããåçãªãã¥ãŒãªã¹ãã£ãã¯ãªãã·ã§ã³ã®ã¿ã説æããŸãã
- Minimum code : 35 , . 1 , 1 â . «path-based», . «simple», , , . .
- Balanced : 40 , , . 1 , 1 . , , . «path-based» , .
- Performance : â 150 , , 1. . , «path-based». , , .
- Greedy : , â 250 , 1. , , «most frequent trace». , . , , 6, . , , .
ãããã¯ã³ã³ãã€ã©ãšåæ§ã«ããã¹ãŠã®ãã¥ãŒãªã¹ãã£ãã¯ã¯ãã²ãã¿ãŒã»ãã¿ãŒãªã©ã®å°ããªã¡ãœãããäžè¬çã«åžžã«ã€ã³ã©ã€ã³ã§ããããšãæ€èšŒããŸãã å°ããªãã¬ãŒã¹ãåŒã³åºãã«ã¯ãã€ã³ã©ã€ã³åãããå€ãã®ãã·ã³ã³ãŒããå¿ èŠã«ãªãå Žåããããããããã¯çã«ããªã£ãŠããŸãã HotSpotãµãŒããŒã³ã³ãã€ã©ã§äœ¿çšããããã1ã€ã®æŠç¥ã¯ãã¬ã·ãŒããŒãæ¢ã«åå¥ã«ã³ã³ãã€ã«ãããŠããå ŽåããŸãã¯ã³ã³ãã€ã«ã«ãã£ãŠå€æ°ã®ãã·ã³ã³ãŒããçæãããå Žåãã¡ãœããã®ã€ã³ã©ã€ã³åãåé¿ããããšã§ãã ããã¯ãååã«åºãã³ã³ãã€ã«é åã«ã¯ãé©åãªã³ã³ãã€ã©æé©åã®ããã®ååãªæ å ±ããã§ã«ãããããã³ã³ãã€ã«é åãç¹å®ã®å¢çãè¶ ããŠå¢ããããšã¯ãå§ãã§ããŸããã ãã®ææ³ã¯ãããã©ãŒãã³ã¹ã«æž¬å®å¯èœãªåœ±é¿ãäžããããšãªããçæããããã·ã³ã³ãŒãã®éãæžããããããã¹ãŠã®ã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã«äœ¿çšããŸãã
ãã¹ãããããã¬ãŒã¹ãã€ã³ã©ã€ã³åããå¯èœæ§ãæžããããã«ãã€ã³ã©ã€ã³ãã¬ãŒã¹ã芪ã®åŒã³åºãå Žæããé¢é£æ§ãç¶æ¿ããããšã確èªããŸãã ãããè¡ãã«ã¯ãåŒã³åºãããåãããã¯ã®é¢é£æ§ã«åŒã³åºãå ãããã¯ã®é¢é£æ§ãæããŸãã ãã ããç¶æ¿ã®é¢é£æ§ã®æ倧å€ã1ã«å¶éããŸããããããªããšãã€ã³ã©ã€ã³åã®ã¬ãã«ã«å¿ããŠé¢é£æ§ãé«ããªãå¯èœæ§ããããŸãã ç¹°ãè¿ããŸãããé¢é£æ§ã®ç¶æ¿ã¯ãããã©ãŒãã³ã¹ã«æž¬å®å¯èœãªæªåœ±é¿ãäžããããšãªããçæããããã·ã³ã³ãŒãã®éãæžãããŸãããããããã¹ãŠã®ãã¥ãŒãªã¹ãã£ãã¯ã«ãã£ãŠäœ¿çšãããçç±ã§ãã
6.ãã¹ããšè©äŸ¡
JDK8 [20]ã§éçºäžã®ã¢ãŒãªãŒã¢ã¯ã»ã¹ããŒãžã§ã³ã®b12ã䜿çšããŠãHotSpot VMã®IA-32ã¢ãŒããã¯ãã£çšã®ãã¬ãŒãµãŒJITã³ã³ãã€ã©ãå®è£ ããŸããïŒ2013幎-翻蚳è ã³ã¡ã³ãïŒã ã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ããã¹ãããããã«ãSPECjbb2005 [23]ãSPECjvm2008 [24]ãããã³DaCapo 9.12 Bach [3]ãéžæããŸããããããã¯å€æ°ã®ç°ãªããã§ãã¯ãã«ããŒããŠããããã§ãã ãã³ãããŒã¯ãéå§ããããã³ãããŒã¯ã®æ§æã¯æ¬¡ã®ãšããã§ãïŒ2.66 GHzã®åšæ³¢æ°ã§4ã³ã¢ã®Intel Core-i5ããã»ããµãŒã4n256 kb L2ãã£ãã·ã¥ã8 MBå ±æL3ãã£ãã·ã¥ã8 GBã¡ã€ã³ã¡ã¢ãªãããã³ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ãªãWindows 7 Professionalã
çµæã¯ãå€æŽãããŠããªããããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©HotSpotãåºæºã«ããŠè¡šç€ºãããŸããããã¯100ïŒ ãšèŠãªãããŸãã ãã¬ãŒãµãŒJITã³ã³ãã€ã©ãŒã®å Žåãçæããããã·ã³ã³ãŒãã®éã«ã¯ãã€ã³ã¿ãŒããªã¿ãŒã§å€±æããããã«å¿ èŠãªæé©å解é€ã«é¢ããè¿œå æ å ±ãªã©ããã¬ãŒãµãŒã³ã³ãã€ã«ã«åºæã®ããŒã¿ãå«ãŸããŸãã äžèšã®ãã³ãããŒã¯ã¯ãããã10åå®è¡ãããŸãããçµæã¯ã95ïŒ ã®ä¿¡é Œåºéã§ãããã®çµæã®å¹³åã瀺ããŠããŸãã
6.1ã SPECjbb2005
ãã®ãã³ãããŒã¯ã¯ããã¹ãŠã®æäœãããããããŠã§ã¢ããŠã¹ã«åå²ãããã€ã³ã¡ã¢ãªããŒã¿ããŒã¹ã§å®è¡ãããã¯ã©ã€ã¢ã³ã/ãµãŒããŒããžãã¹ã¢ããªã±ãŒã·ã§ã³ãã·ãã¥ã¬ãŒãããŸãã ãã³ãããŒã¯ã¯ç°ãªãæ°ã®å庫ã§å®è¡ãããåå庫ã¯åå¥ã®ã¹ã¬ããã§åŠçãããŸãã 4ã³ã¢ã®ã¹ã¿ã³ãã䜿çšããããã1ç§ãããã®ããžãã¹ãªãã¬ãŒã·ã§ã³ïŒ1ç§ãããã®ããžãã¹ãªãã¬ãŒã·ã§ã³ããããïŒã§æž¬å®ãããå ¬åŒã¹ã«ãŒãããSPECjbb2005ã¯ãå庫4ã8ã®ããã©ãŒãã³ã¹ã®å¹Ÿäœå¹³åãšããŠå®çŸ©ãããŸãã 1200MBãµã€ãºã®ãããããã¹ãŠã®æž¬å®ã«äœ¿çšãããŸããã
å³12ã¯ãSPECjbb2005ã®ããŒã¯ããã©ãŒãã³ã¹ãçæããããã·ã³ã³ãŒããããã³ã³ã³ãã€ã«æéã瀺ããŠããŸãã ãã¬ãŒãµãŒã³ã³ãã€ã©ãªãã·ã§ã³ã¯ãã¹ãŠãããŒã¯é床ã®ç¹ã§ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãããå€§å¹ ã«é«éã§ããã ããç©æ¥µçãªãã¬ãŒã¹ã€ã³ã©ã€ã³åã¯ããŒã¯ããã©ãŒãã³ã¹ã®åäžã«ã€ãªãããŸããããçæããããã·ã³ã³ãŒãã®éã®å¢å ã«ã€ãªãããã³ã³ãã€ã«ãããã¯ãéåžžã«å€§ãããªããããã³ã³ãã€ã«ã«æéãããããŸããã SPECjbb2005ã®ããŒã¯ããã©ãŒãã³ã¹ã¯ããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã®ç©æ¥µæ§ãé«ãŸãããããããã©ãŒãã³ã¹ãæ§æããæããã«æ¹åãããŸãã 貪欲ãªæ§æã«ããããŒã¯ããã©ãŒãã³ã¹ãåäžããŸããããã»ãã®ãããã§ãããã¯ããã«å€ãã®ãã·ã³ã³ãŒããçæãããŸããã ã³ã³ãã€ã«æéãšçæããããã·ã³ã³ãŒãã®éã®èŠ³ç¹ããããæå°ã³ãŒããæ§æã¯ãé©åãªããŒã¯ããã©ãŒãã³ã¹ãæäŸããªãããç¹ã«å¹ççã§ããããšã蚌æãããŸããã

å³12. SPECjbb2005ã®çµæ
å³13ã¯ãç°ãªãæ°ã®å庫ãšç°ãªãã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã«å¯ŸããSPECjbb2005ã®ããŒã¯ããã©ãŒãã³ã¹ãåæ ããŠããŸãã åå庫ã¯åå¥ã®ã¹ã¬ããã§åŠçãããã¹ã¿ã³ãã«ã¯ã³ã¢ã4ã€ãããªãããã4ã€ã®å庫ã§æ倧ã®ããã©ãŒãã³ã¹ãéæãããŸããã ãã®å³ã¯ããŠã§ã¢ããŠã¹ã®æ°ã«é¢ä¿ãªããæ§æããããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãè¿œãè¶ãããšã瀺ããŠããŸãã

å³13. SPECjbb2005ã®ç°ãªãæ°ã®å庫ã®ããŒã¯ããã©ãŒãã³ã¹
6.2ã SPECjvm2008
SPECjvm2008ã¯ãããŒã¯ããã©ãŒãã³ã¹ã枬å®ãã9ã€ã®ã«ããŽãªã®ãã¹ãã§æ§æãããŠããŸãã åã ã®ãã¹ãçµæã®çŽåŸã«ããã¹ãŠã®çµæã®å¹Ÿäœå¹³åã衚瀺ãããŸãã ãã¹ãŠã®ãã¹ãã§1024 MBã®ãããã䜿çšãããŸããã

å³14. SPECjvm2008ã®ããŒã¯ããã©ãŒãã³ã¹
å³14ã¯ããã¹ãŠã®æ§æãHotSpotãããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãããåªããŠããããšã瀺ããŠããŸãã ãããã®æ§æã¯ãããŒããŒããã³ã·ãªã¢ã«ãã¹ãã§æ倧ã®å éã瀺ããŸããã ãããã®ãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã«ãããHotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ã§äœ¿çšãããã¡ãœããã®ã€ã³ã©ã€ã³åããã倧ããªã³ã³ãã€ã«é åã«å°éã§ããŸããã 貪欲ãªæ§æãªã©ãéåžžã«ç©æ¥µçãªãã¬ãŒã¹ã€ã³ã©ã€ã³åããªã·ãŒã¯ãç¹ã«ããŒããŒããã³ãµã³ãããŒãã³ãããŒã¯ã®ããŒã¯ããã©ãŒãã³ã¹ã®åäžã«ã€ãªãããŸããã§ããã ããã«ããã¬ãŒã¹ã®ç©æ¥µçãªã€ã³ã©ã€ã³åã«ãããçæããããã·ã³ã³ãŒãã®éãšJITã³ã³ãã€ã«ã®æéãå¢å ããŸããïŒå³15ããã³16ãåç §ïŒã

å³15. SPECjvm2008ã§çæããããã·ã³ã³ãŒãã®é

å³16. SPECjvm2008ã§ã®ã³ã³ãã€ã«æé
HotSpotãããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãŒã¯ããã©ãŒãã³ã¹ã¯ãªãã£ã«ã«ãªã«ãŒãã§ãã¹ãŠã®åŒã³åºããã€ã³ã©ã€ã³åããããšãã§ãããããæå·ãmpegaudioãããã³scimarkã«ãŒããé »ç¹ã«äœ¿çšããå°èŠæš¡ãªãã¹ãã§ã¯ãããŒã¯ããã©ãŒãã³ã¹ã®å¢å ã¯ã»ãšãã©ãããŸããã§ããã ãããã®ãã¹ãã®ãµã€ãºãå°ããããããã¬ãŒãµãŒã³ã³ãã€ã©ã¯åçã®ã³ã³ãã€ã«é åã®ã¿ãéæã§ããŸããã ãããããã¬ãŒãµãŒã³ã³ãã€ã©ãŒã¯ãã¡ãœããã®ã³ã³ãã³ãå šäœã§ã¯ãªããã¬ãŒã¹ãã€ã³ã©ã€ã³åãããããçæããããã·ã³ã³ãŒãã®äœæãå°ãªããªããã³ã³ãã€ã«æéãççž®ãããŸããïŒå³15ããã³16ãåç §ïŒã
å³15ã¯ãçæããããã·ã³ã³ãŒãã®éãã€ã³ã©ã€ã³åãµã€ãºã«äŸåããããã倧éã®ã³ãŒããçªç¶çæãããããšã瀺ããŠããŸãã ããã«ãããããããæãç©æ¥µçãªã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã䜿çšãããŠããå Žåã§ããå°èŠæš¡ã§éäžçã«ã«ãŒããã³ãããŒã¯ã䜿çšããŠããã³ãŒããé床ã«å¢å ããããšã¯ãããŸããã ãã®ãããªãã³ãããŒã¯ã§ã¯ãã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã¯éåžžã«ä¿å®çã§ããå¿ èŠããããããŸãç©æ¥µçã«è¡åããªãã§ãã ããã
6.3ã ãã«ã
DaCapo 9.12 Bachã¯ãJavaã§èšè¿°ããã14ã®ã¢ããªã±ãŒã·ã§ã³ã§æ§æãããŠããŸãã ããã©ã«ãã®ããŒã¿ãµã€ãºãšããŒããµã€ãº1024 MBã䜿çšããŠãåãã¹ãã20åç¹°ãè¿ãå®è¡ãããããå®è¡æéãåæããŸããã åãã¹ãã®æééå§ãšããã¹ãŠã®çµæã®å¹Ÿäœå¹³åã®ã¿ã瀺ããŸãã ãã¹ãŠã®æž¬å®ã«ã¯ã1024 MBã®ããããµã€ãºã䜿çšãããŸããã
å³17ã¯DaCapo 9.12 Bachã®ããŒã¯ããã©ãŒãã³ã¹ã瀺ããå³18ã¯çæããããã·ã³ã³ãŒãã®éã瀺ããŠããŸãã 貪欲ãªã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã¯æé«ã®ããŒã¯ããã©ãŒãã³ã¹ã瀺ããŸããããå€æŽãããŠããªãHotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãããå€ãã®ãã·ã³ã³ãŒããçæããŸããã ç¹ã«ãluindexãpmdãsunflowã¯ãæ倧ã®ã€ã³ã©ã€ã³ãµã€ãºãæäŸãããããgreedyã䜿çšããããšã§æ©æµãåããŠããŸãã ãã ããäžéšã®ãã¹ãã§ã¯ããã®ãã¥ãŒãªã¹ãã£ãã¯ã¯éåžžã«æ»æçã§ãããããããŒã¯ããã©ãŒãã³ã¹ã«å€§ããªå€åãäžããã«éå°ãªéã®ãã·ã³ã³ãŒããçæãããŸãã

å³17. DaCapo 9.12 Bachã®ããŒã¯ããã©ãŒãã³ã¹

å³18. DaCapo 9.12 Bachã§çæããããã·ã³ã³ãŒãã®é
æ§æã¯ãå€æ°ã®ä»®æ³åŒã³åºããè¡ãjythonãã¹ãã§æãæå©ã«ãªããŸããã ãã¬ãŒãµã³ã³ãã€ã©ã¯ãèšé²ããããã¬ãŒã¹æ å ±ã䜿çšããŠãä»®æ³ã¡ãœãããç©æ¥µçã«ã€ã³ã©ã€ã³åããŸãã ããã§åœŒã¯ã³ã³ãã€ã«é åãå¢ãããŠãé«ãããŒã¯ããã©ãŒãã³ã¹ãå®çŸããŸããã
å¹³åããŠãã貪欲ããé€ããã¹ãŠã®ã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã¯ãHotSpotãããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãããå°ãªããã·ã³ã³ãŒããçæããããé«ãå¹³åããŒã¯ããã©ãŒãã³ã¹ã瀺ããŸããã ãã¬ãŒã¹ã®ãµã€ãºãåºå®æ倧å€ãšæ¯èŒããéçãã¥ãŒãªã¹ãã£ãã¯ã®1ã€ã¯ããæå°ã³ãŒããæ§æãšã»ãŒåãããŒã¯ããã©ãŒãã³ã¹ãéæããŸããããããå€ãã®ãã·ã³ã³ãŒããçæããŸããã å®çŸ©ã«ãããã³ã³ãã€ã«ããããã¬ãŒã¹ã«ã¯é »ç¹ã«äœ¿çšããããã¹ã®ã¿ãå«ãŸããŠãããããéçãã¥ãŒãªã¹ãã£ãã¯ã«éåžžã«é©ãããã®çµæãéæãããŸããã ãã ãã倧ããªãããŒã®ãªãã¡ãœããã®å Žåã¯ããã¬ãŒã¹ã®ãµã€ãºãåºå®ã®ãããå€ãšåçŽã«æ¯èŒããã ãã§ååã§ãã æ倧ã€ã³ã©ã€ã³ãµã€ãºãåŒãç¶ãå°ããéãããã®éçãªãã¥ãŒãªã¹ãã£ãã¯ã¯ãŸãšããªçµæã瀺ããŸãããæ倧ã€ã³ã©ã€ã³ãµã€ãºã倧ãããªããšãããã©ãŒãã³ã¹ã«ãã©ã¹ã®åœ±é¿ãäžããããšãªãã倧éã®ãã·ã³ã³ãŒããçæãããŸãã
JITã³ã³ãã€ã«ã«å¿ èŠãªæéã«é¢ããŠãå³19ã¯ããã¬ãŒãµãŒã³ã³ãã€ã©ãéåžžã«å¹ççã§ãããæãæ»æçãªè²ªæ¬²ãªæ§æã§ããå¹³åããŠHotSpotãããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãå¿ èŠãšããã®ãšåãã³ã³ãã€ã«æéããå¿ èŠãªãããšã瀺ããŠããŸãã

å³19. DaCapo 9.12 Bachã§ã®ã³ã³ãã€ã«æé
6.4ã é«ã¬ãã«ã®æé©å
ã€ã³ã©ã€ã³åã¡ãœãããšåãããã«ããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã¯ãã³ã³ãã€ã«é åãå¢ãããããä»ã®ã³ã³ãã€ã©ãŒã®æé©åã«ãã©ã¹ã®å¹æãããããæé©åã§ãã å³20ã¯ãHotSpotãããã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãšãã¬ãŒãµã³ã³ãã€ã©ã®äž¡æ¹ã§äœ¿çšãããããŸããŸãªé«ã¬ãã«ã®æé©åã®ããŒã¯ããã©ãŒãã³ã¹ãžã®å¯äžãæ¯èŒããŠããŸãã 1ãšããŠããŒã¯ãããæé©åã¯ããã€ãã³ãŒã解æäžã«çŽæ¥é©çšãããããŒã«ã«æé©åã§ããã2ãšããŠããŒã¯ãããæé©åã¯ãã°ã©ãæ§ç¯åŸã®å¥ã®ãã§ãŒãºã§å®è¡ãããã°ããŒãã«æé©åã§ãã

å³20.ããŒã¯ããã©ãŒãã³ã¹ã«å¯Ÿããé«åºŠãªæé©åã®åœ±é¿
äžè¬ã«ããã¬ãŒã¹ã®ç©æ¥µçãªã€ã³ã©ã€ã³åã¯ã³ã³ãã€ã«é åãå¢ãããå€ãã®æé©åã«ãã©ã¹ã®åœ±é¿ãäžããŸãã ãã ãããã³ãããŒã¯ãšç¹å®ã®æé©åã«ãã£ãŠã¯ãåé¡ã®ãŸã£ããç°ãªãåŽé¢ãæããã«ãªããŸãã SPECjbb2005ã®å Žåããã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã«ãããæ£èŠåãã¹ãã®å¹çãç¹ã«åäžããŸããããŸããå®æ°ã®ç³ã¿èŸŒã¿ããããã³ãŒãã®åé€ãªã©ã®åçŽãªæé©åã®ããã©ãŒãã³ã¹ããã¹ããããšããåäžããŸããã ãã ããSPECjvm2008ã«ã¯ããã¬ãŒãµãŒã³ã³ãã€ã©ãã¯ããã«å€§ããªã³ã³ãã€ã«é åã«å°éããããšãã§ããªããéåžžã«å€ãã®å°èŠæš¡ã§éäžçã«äœ¿çšãããã¹ãã«ãŒããæ¢ã«å«ãŸããŠããŸãã ãããã£ãŠãé«ã¬ãã«ã®æé©åãå°ãªããšãããã€ãã®å©ç¹ãåŸãå¯èœæ§ã¯äœãã§ãã DaCapo 9.12 Bachã§ã¯ããªã¹ãããããã¹ãŠã®æé©åã®ããã©ãŒãã³ã¹ãèãå±€ã§å¡ãã€ã¶ãããŸããã
6.5ã ãµãŒããŒã³ã³ãã€ã©
HotSpotã«ã¯ãã»ãšãã©ã®ä»®æ³ãã·ã³ã€ã³ãã©ã¹ãã©ã¯ãã£ãäžç·ã«åå©çšãã2ã€ã®ç°ãªãJITã³ã³ãã€ã©ãå«ãŸããŠããŸãã ãã¬ãŒãµãŒã³ã³ãã€ã©ã¯ãã¢ããªã±ãŒã·ã§ã³ã®æé©ãªéå§æéã®ããã«äœæãããã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©äžã«æ§ç¯ãããæãåºæ¬çãªæé©åã®ã¿ãå®è£ ããŸãããããã§ããŸãšããªããŒã¯ããã©ãŒãã³ã¹ããããããŸãã ãµãŒããŒã³ã³ãã€ã©ïŒãµãŒããŒã³ã³ãã€ã©ïŒã¯ãé·å¯¿åœã®ãµãŒããŒã¢ããªã±ãŒã·ã§ã³åãã«èšèšãããŠãããããå€ãã®æé©åãå®è¡ãããããéåžžã«å¹ççãªã³ãŒããçæãããŸãã ãµãŒããŒã³ã³ãã€ã©ã¯ãé åå¢çã®ãã§ãã¯ã®åé€ãã«ãŒãäžå€ã³ãŒãã¢ãŒã·ã§ã³ïŒã«ãŒãããã®åŒãåºãïŒãã«ãŒãã®ã¢ã³ã©ããã³ã°ããšã¹ã±ãŒãåæãªã©ãããã€ãã®è¿œå ã®æé©åãé©çšã§ããŸãã ãããã£ãŠãçæãããã³ãŒãã®ããŒã¯ããã©ãŒãã³ã¹ã¯åäžããŸããããã³ãããŒã¯SPECjbb2005ãSPECjvm2008ãããã³DaCapo 9.12 Bachã§ã¯6ã31åïŒå¹³å13ïŒé·ãã³ã³ãã€ã«ãããŸãã ãµãŒããŒã¯äž»ã«é·å¯¿åœã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããããé·ãã³ã³ãã€ã«ã§ã¯ç·å®è¡æéã«æ¯ã¹ãŠããããªãªãŒããŒãããããçºçããŸããã
貪欲ãªæ§æã®æé«ã®ããŒã¯ããã©ãŒãã³ã¹ãHotSpotãµãŒããŒã³ã³ãã€ã©ãšæ¯èŒããçµæãå³21ã«ç€ºããŸãã

å³21. SPECjbb2005ãSPECjvm2008ãããã³DaCapo 9.12 Bachã®ããŒã¯ããã©ãŒãã³ã¹
SPECjbb2005ã¯ãå®äºãããŸã§ã«é·ãæéããããããµãŒããŒã³ã³ãã€ã©ãŒãçæã§ããæé©åãã倧ããªå©ç¹ãåãåããŸããããã®ããããã¬ãŒãµãŒã³ã³ãã€ã©ãŒã¯ããã©ãŒãã³ã¹ã®67ïŒ ããéæã§ããŸããã
SPECjvm2008ã®è²ªæ¬²ãªæ§æã¯ããµãŒããŒã³ã³ãã€ã©ã®ããã©ãŒãã³ã¹ãå¹³å85ïŒ ã«éããŸããã ãã®ãã³ãããŒã¯ã«ã¯ãæå·åãmpegaudioãscimarkãªã©ãã«ãŒããéäžçã«äœ¿çšããå€ãã®ããã¹ããå«ãŸããŠããŸãããµãŒããŒã³ã³ãã€ã©ã¯ãã¢ã¬ã€ã®å¢çã®ãã§ãã¯ã®åé€ã䜿çšããã¹ããŒãã«ãŒãæé©åã䜿çšãããããèããé«ãããŒã¯ããã©ãŒãã³ã¹ã瀺ããŸãã ããã§ãããã¬ãŒã¹ãç©æ¥µçã«ã€ã³ã©ã€ã³åããçµæããã¬ãŒãµãŒã³ã³ãã€ã©ã¯å§çž®ããã³ãµã³ãããŒãã³ãããŒã¯ã§ãµãŒããŒã³ã³ãã€ã©ãè¿œãè¶ããŸããã
ã¯ããã«å°ãªãã«ãŒãã䜿çšããéåžžã«è€éãªãã¹ããå«ãDaCapo 9.12ããã[14]ã§ããã¬ãŒãµãŒã³ã³ãã€ã©ã¯å¹³å93ïŒ ã®ãµãŒããŒã³ã³ãã€ã©ããã©ãŒãã³ã¹ãéæããŸããã ãã¬ãŒãµãŒã³ã³ãã€ã©ã¯æãåºæ¬çãªæé©åã®ã¿ãå®è¡ãããšããäºå®ã«ãããããããluindexãpmdãsunflowãã¹ãã§ã®ãµãŒããŒã³ã³ãã€ã©ã®ããŒã¯ããã©ãŒãã³ã¹ãè¶ ããŠããŸããã ããã¯ãç©æ¥µçã§ç¶æ³äŸåã®ã€ã³ã©ã€ã³åã«ãã£ãŠå¯èœã«ãªããŸãã
6.6ã æã¡äžãé床
HotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ããµãŒããŒã³ã³ãã€ã©ãããã³ãã¬ãŒãµJITã³ã³ãã€ã©ã®äž¡æ¹-ãããã¯ãã¹ãŠãããã¯ã°ã©ãŠã³ãã§ã®ãã«ãã¹ã¬ããã³ã³ãã€ã«ãèæ ®ããŠéçºãããŸããã 次ã®ã·ããªãªã§ã¹ã¿ãŒãã¢ããã®ããã©ãŒãã³ã¹ããã¹ãããŸããã
- æåã®ã·ããªãªã§ã¯ã1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ãããå®è¡ãããŠããŸããããVMã¯æ倧4ã€ã®JITã³ã³ãã€ã©ã¹ã¬ããã䜿çšããŠããŸããã ãããã£ãŠã4ã³ã¢ã¹ã¿ã³ãã§ã¯ãæ倧3ã³ã¢ãJITã³ã³ãã€ã«å°çšã«å æãããŠããŸããã
- 2çªç®ã®ã·ããªãªã§ã¯ã4ã€ã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ããã4ã€ã®JITã³ã³ãã€ã©ã¹ã¬ãããšåæã«å®è¡ãããŸããã 4ã³ã¢ãã³ãã§ãJITã³ã³ãã€ã©ã¹ã¬ããã¯ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ãããšç«¶åãå§ããŸããã JITã³ã³ãã€ã«ã¯èµ·åé床ã«ãã©ã¹ã®å¹æããããããHotSpot VMã¯JITã³ã³ãã€ã©ãŒã䜿çšããŠã¹ã¬ããã«é«ãåªå 床ãäžããŸãã
衚瀺ããããã¹ãŠã®çµæã¯ãåäžã®JITã³ã³ãã€ã«ã¹ããªãŒã ã䜿çšãããã¯ã©ã€ã¢ã³ããæ§æã®ããã©ãŒãã³ã¹ã«ãã£ãŠæ£èŠåãããŸãã SPECjbb2005ã®èµ·åé床ã®çµæã¯è¡šç€ºããŸããã§ããã ãã®ãã³ãããŒã¯ã¯ãããŒã¯ããã©ãŒãã³ã¹ã枬å®ããããã«èšèšãããŠãããããã30ç§åŸã«æåã®çµæã衚瀺ãããŸãããã®åŸããã¹ãŠã®æ§æãããŒã¯ããã©ãŒãã³ã¹ã«è¿ã¥ããŸãã
SPECjvm2008ã§ã¯ããã¹ãããšã«1ã€ã®æäœãå®è¡ããŠèµ·åé床ã枬å®ããŸããã å³23ã¯ãHotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãšãã¬ãŒãµã³ã³ãã€ã©ã®äž¡æ¹ããã¢ããªã±ãŒã·ã§ã³ã¹ã¬ãããã³ã³ãã€ã©ã¹ã¬ãããšç«¶åããã·ããªãªã§è¯å¥œãªçµæãéæããŠããããšã瀺ããŠããŸãã ã³ã³ãã€ã«æéãéèŠãªå Žåã

å³23. 4ã€ã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ããã§ã®SPECjvm2008ã®èµ·åæé
å³22ã¯ãä»ã®æ¹æ³ã§ã¯ã¢ã€ãã«ç¶æ ã«ãªãã«ãŒãã«ãJITã³ã³ãã€ã«ã«äœ¿çšã§ããå¥ã®ã·ããªãªã瀺ããŠããŸãã

å³22. 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ããã§ã®SPECjvm2008ã®èµ·åæé
ãã®å ŽåãHotSpotãµãŒããŒã³ã³ãã€ã©ãŒã¯ãæé«ã®èµ·åé床ã瀺ããŸããSPECjvm2008ã«ã¯ãã³ã³ãã€ã«ããå¿ èŠãã»ãšãã©ãªããæãæ·±ãã«ãŒããã³ã³ãã€ã«ããçŽåŸã«ããŒã¯ããã©ãŒãã³ã¹ã«éããããã€ãã®å°ããªãã¹ããå«ãŸããŠããããã§ãã ããã¯ãã«ãŒããç¹ã«æé©åãããµãŒããŒã³ã³ãã€ã©ã«ãšã£ãŠçæ³çãªã±ãŒã¹ã§ãããããã£ãŠãã³ã³ãã€ã«å¯èœãªã¢ã€ãã«ã«ãŒãã«ãããå Žåãèµ·åé床ã«åœ±é¿ããããŒã¯ããã©ãŒãã³ã¹ã«å©ç¹ããããŸãã
ãã®ç»åã¯ãäž¡æ¹ã®JITã³ã³ãã€ã©ãŒãæ¯èŒççãã³ã³ãã€ã«æéãå¿ èŠãšãããããã³ã³ãã€ã©ãŒã¹ã¬ããã®æ°ãã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãŒãŸãã¯ãã¬ãŒãµãŒã³ã³ãã€ã©ãŒã«åœ±é¿ãäžããªãããšã瀺ããŠããŸãã ãµãŒããŒã³ã³ãã€ã©ã¯ããå€ãã®æéãå¿ èŠãšãããããè€æ°ã®ã³ã³ãã€ã«ã¹ããªãŒã ãããå Žåãç¹ã«ãããã®ç®çã«äœ¿çšã§ããã¢ã€ãã«ã«ãŒãã«ãããå Žåã匷åãªå©ç¹ããããŸãã
DaCapo 9.12 Bachã®å Žåããã¹ãããšã«1åã®å埩ãå®è¡ããŠèµ·åé床ã枬å®ããŸããã ãã¹ãçµæãå³24ããã³25ã«ç€ºããŸãã

å³24. 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ããã§ã®DaCapo 9.12ãããã®èµ·åæé

å³25. 4ã€ã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ããã§ã®DaCapo 9.12 Bachã®èµ·åæé
ç¹°ãè¿ããŸãããã³ã³ãã€ã«ã¹ã¬ããã®æ°ã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãŸãã¯ãã¬ãŒãµã³ã³ãã€ã©ã®ãããã«ã圱é¿ããŸãããå¯Ÿç §çã«ããµãŒããŒã³ã³ãã€ã©ã¯ãè€æ°ã®ã¹ã¬ãããJITã³ã³ãã€ã«ã«äœ¿çšã§ããå Žåã«æŽ»çšããŸãããã ããJITã³ã³ãã€ã«ã«ãã¹ãŠã®ã¢ã€ãã«ã«ãŒãã«ã䜿çšããå Žåã§ããæ§æã®ããã€ãã¯ãµãŒããŒã³ã³ãã€ã©ãããåžžã«é«éã§ããããã¯ãDaCapo 9.12 BachãSPECjvm2008 [14]ã®ãã¹ããããããªãè€éã§ãããããJITã³ã³ãã€ã«é床ãã¢ããªã±ãŒã·ã§ã³ã®èµ·åé床ã®äž»èŠãªèŠå ã§ããããã§ãã
DaCapo 9.12 Bachã®ãã¹ãã§ã¯ããã¬ãŒãµãŒæ§æã¯HotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãããèµ·åãçŽ10ïŒ é ãããšã瀺ããŠããŸããéåžžããã¬ãŒã¹ã³ã³ãã€ã©ã¯HotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãããJITã³ã³ãã€ã«ã«å¿ èŠãªæéãçããšããäºå®ã«ããããããããã®å Žåãèµ·åæã«éåžžçºçãããã¬ãŒã¹ãšéæé©åã®èšé²ã«è¿œå ã®ãªãŒããŒããããçºçãããããèµ·åé床ãäœäžããŸãããã ããããŒã¯ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããããšã§ããã®æ¬ ç¹ãè£ãããŸããHotSpotã¯ã©ã€ã¢ã³ãã³ã³ãã€ã©ãšã¯ç°ãªãããã¬ãŒãµãŒã³ã³ãã€ã©ã¯ãè¯å¥œãªèµ·åé床ãå®çŸããããã«ã¢ã€ãã«ã«ãŒãã«ãå¿ èŠãšããŸããã
7.é¢é£äœå
Bala et alã[1]ã¯ããã€ãã£ãåœä»€ãããŒãæé©åããããã«ãDynamoã·ã¹ãã ã®ãã¬ãŒãµãŒã³ã³ãã€ã«ãå®è£ ããŸããããããåœä»€ã·ãŒã±ã³ã¹ã¯ãã€ã³ã¿ããªã¿ã®äžã§ãã€ããªã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããšã§èå¥ãããŸãã次ã«ããããã®ãã¬ãŒã¹ãã³ã³ãã€ã«ããããããã«ãã£ãŠçæããããã·ã³ã³ãŒããçŽæ¥å®è¡ãããŸãã解éã«ãããªãŒããŒãããã¯ãã³ã³ãã€ã«ããããã¬ãŒã¹ã®æ°ã®å¢å ãšãšãã«æžå°ããé ããæ©ããå éã«ã€ãªãããŸããããããšã¯å¯Ÿç §çã«ããã€ãã³ãŒãã§é©åãªãã¬ãŒã¹ã¢ã³ã«ãŒãèå¥ããã¯ã©ã¹ããŒãäžã«éçåæã䜿çšããŸããåã ã®ãã¬ãŒã¹ã1ã€ã®ã¡ãœããã®æ·±ãã«å¶éããèšé²ããããã¬ãŒã¹ããªã³ã¯ããŠãã¡ãœããã®å¢çãè¶ãããšãã«ç¶æ³äŸåæ å ±ãä¿åããŸããããã«ãããã³ã³ãã€ã«æãŸã§ã€ã³ã©ã€ã³åã®å¿ èŠæ§ã«é¢ãã決å®ã延æã§ããŸããé²é³äžã«çŽæ¥è¡ã代ããã«ã
Rogers [22]ã¯ãé »ç¹ã«å®è¡ãããããŒã¹ãããã¯ã«ããŒã¯ãä»ããŠã³ã³ãã€ã«ããJavaçšã®ãã®ãããªJITã³ã³ãã€ã©ãå®è£ ããŸãããè€æ°ã®ã¡ãœããã«æ¡åŒµã§ããé¢é£ãããã¯ãéåžžã«é »ç¹ã«å®è¡ãããå Žåããããã¯1ã€ã®ãšã³ãã£ãã£ãšããŠã°ã«ãŒãåããã³æé©åãããŸãããããã¯ã³ã³ãã€ã«ãšæ¯èŒããŠãã³ã³ãã€ã«ããããã€ãã³ãŒãã¯å°ãªããæ倧18ïŒ ã§ããç§ãã¡ã®ã·ã¹ãã ã¯ãã¬ãŒã¹ãèšé²ããã³ã³ã³ãã€ã«ãããã¬ãŒã¹ã®ç¶æ³äŸåã€ã³ã©ã€ã³åã䜿çšããŠããŒã¯ããã©ãŒãã³ã¹ãåäžãããªãããéåžžã«æ§ãããªéã®ãã·ã³ã³ãŒããçæããŸãã
次ã®ã¢ãããŒãã¯ãJavaã®å€ãã®ãã¬ãŒã¹ã³ã³ãã€ã«ãªãã·ã§ã³ã§å®è£ ãããŠããŸã[2,11,12,18]ããã ããããããã¹ãŠã®ã¢ãããŒãã«ã¯å ±éç¹ããããŸãããã¬ãŒã¹ã¯ããã€ãã®æ¹æ³ã«æ¡åŒµã§ããããããã¬ãŒã¹ã®èšé²äžã«ã€ã³ã©ã€ã³åãè¡ãå¿ èŠããããŸããå¯Ÿç §çã«ã1ã€ã®æ¹æ³ããã¬ãŒã¹ããã£ããã£ããããã®æ倧å¯èœé åã§ããããªã³ã¯ããã¬ãŒã¹éã®æ å ±ãä¿åããããã«äœ¿çšããããšä»®å®ããŸããããã«ãããã€ã³ã©ã€ã³åã®å¿ èŠæ§ã«é¢ãã決å®ãã³ã³ãã€ã«æãŸã§ãã€ãŸãããå€ãã®æçšãªæ å ±ãå©çšå¯èœã«ãªããŸã§å»¶æã§ããŸãããããã£ãŠãã€ã³ã©ã€ã³åã¯èªã¿ããããåçŽãªãã¥ãŒãªã¹ãã£ãã¯ã䜿çšããŠãããŒã¯ããã©ãŒãã³ã¹ãåäžãããçæããããã·ã³ã³ãŒããæžãããŸãã
Gal et alã[11,12]ã¯ããªãœãŒã¹ãéãããŠããããŒããŠã§ã¢ã«ãã¬ãŒãµãŒã³ã³ãã€ã©ãå®è£ ããŸããããã¬ãŒã¹ã¯ãéãã©ã³ãã®é »ç¹ã«å®è¡ãããã¿ãŒã²ãããããã³æ¢åã®ãã¬ãŒã¹ã®ãµã€ãåºå£ã§å®è¡ãããŸãããã¬ãŒã¹ã¯ããã€ãã®æ¹æ³ã«æ¡åŒµã§ãããããèšé²äžã«ã€ã³ã©ã€ã³åãçºçããŸãããã¬ãŒã¹ãèšé²ããåŸãããã¯ãã·ã³ã³ãŒãã«ã³ã³ãã€ã«ãããä»ã®ã³ã³ãã€ã«ããããã¬ãŒã¹ã«ãªã³ã¯ãããããªãŒã®ãããªæ§é ã圢æããŸããã³ã³ãã€ã«ããããã¬ãŒã¹ã®ãã®åçŽãªæ§é ã¯ãå€ãã®æé©åãç°¡çŽ åããŸãããéå°ãªããŒã«è€è£œãšè¥å€§åã³ãŒãã«ã€ãªããå¯èœæ§ããããŸãã Androidã®Dalvik VM [4.6]ã§ãåæ§ã®ã¢ãããŒãã䜿çšãããŠããŸããå¯Ÿç §çã«ãã³ã³ãã€ã«ããåã«ãåã ã®ãã¬ãŒã¹ããã¬ãŒã¹ã°ã©ãã«ããŒãžããŠãäžå¿ èŠãªéè€ãåé¿ããŸãã
Bebenita et alã[2]ã¯ãMaxine VMã®ãã¬ãŒãµã³ã³ãã€ã«ãå®è£ ããŸããã Maxineã¯ãåæå®è¡ã«ã€ã³ã¿ãŒããªã¿ãŒã§ã¯ãªãåºæ¬çãªJITã³ã³ãã€ã©ãŒã䜿çšããŸãããã®åºæ¬çãªJITã³ã³ãã€ã©ã¯ããã¬ãŒã¹ã®èšé²ã«äœ¿çšãããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãçæããããã«å€æŽãããŠããŸãã JITã³ã³ãã€ã«ã®éå§åã§ããèšé²ããããã¬ãŒã¹ã¯ããã¬ãŒã¹ã®é åãã«ããŒãžãããããŒãžãã€ã³ãã«æ瀺çãªå¶åŸ¡ãããŒããããŸããããã«ãããéå°ãªããŒã«ã®éè€ãåé¿ãããŸããããããçš®é¡ã®ã«ãŒãæé©åã®çµæãšããŠãJITã³ã³ãã€ã©ãŒã¯ãã«ãŒããé »ç¹ã«äœ¿çšãããã¹ãã§åªããå éãå®çŸããŸãããã ããã«ãŒãã®äœ¿çšé »åºŠãäœããã¹ãã§ã¡ãœãããã³ã³ãã€ã«ãããšãåäœãéåžžã«æªããªããŸãã DaCapo 9ãªã©ã®ã«ãŒããã»ãšãã©äœ¿çšããªãè€éãªã¢ããªã±ãŒã·ã§ã³ã«çŠç¹ãåœãŠãŠãããããç§ãã¡ã®äœæ¥ã¯åœŒãã®ã¢ãããŒããè£å®ãããã®ã§ãã12ãããã»ãžãœã³ããã¬ãŒãµãŒã³ã³ãã€ã©ãŒã§ã¯ããããã®ã¢ããªã±ãŒã·ã§ã³ã§åªããå éãéæããŸããããåæã«ãã³ã³ãã€ã©ãŒã¯ãŸã ã¹ããŒãã«ãŒãæé©åãå®è¡ããŠããªããããã«ãŒããå«ããã¹ãŠã®ãã¹ãã§å éã¯ã»ãšãã©ãããŸããã§ããã
äºäžã[18]ã¯ããã¬ãŒãµJITã³ã³ãã€ã©ãIBM J9 / TR JVMã«è¿œå ãããããã¯JITã³ã³ãã€ã©ãä¿®æ£ããŸãããå€éšã®ããŒãžãã€ã³ããªãã§ç·åœ¢ããã³åŸªç°ãã¬ãŒã¹ãèšé²ããæé©åããããã·ã³ã³ãŒãã«ã³ã³ãã€ã«ããŸããããŒã¯ããã©ãŒãã³ã¹ã«é¢ããŠã¯ããã¬ãŒãµãŒã³ã³ãã€ã©ã¯ãåæ§ã«æé©åããããããã¯JITã³ã³ãã€ã©ã®ããã©ãŒãã³ã¹ãéæããŸãã Wu et alã[28]ã¯ãçåœã®ãã¬ãŒã¹ãšãããã®äžå¿ èŠãªéè€ãé¿ããŠããã®äœæ¥ãæ¡åŒµããŸãããããã¯ããŒã¯ããã©ãŒãã³ã¹ã«åœ±é¿ããŸããããçæããããã·ã³ã³ãŒãã®éãšã³ã³ãã€ã«æéã®äž¡æ¹ãåæžããŸãããŸããæ¢åã®å·¥æ¥å質ã®JVMã«åºã¥ããŠäœæ¥ãè¡ã£ãŠããŸãããåã ã®ãã¬ãŒã¹ã1ã€ã®æ¹æ³ã®æ·±ãã«å¶éããŠããŸãããããã£ãŠãã€ã³ã©ã€ã³åã®æ±ºå®ãã³ã³ãã€ã«æãŸã§å»¶æã§ããŸããããŒã¯ããã©ãŒãã³ã¹ãåäžããŸãã
BradelãšAbdelrahman [5]ã¯ãJikes RVMã®ã€ã³ã©ã€ã³ã¡ãœããã«ãã¬ãŒã¹ã䜿çšããŸããããã©ãã¯ã¯ããã£ãŒãããã¯ãèæ ®ããŠãªãã©ã€ã³ã·ã¹ãã ã䜿çšããŠèšé²ãããŸãã次ã«ãé »ç¹ã«å®è¡ãããã³ãŒã«ãã€ã³ãããã§ã«èšé²ãããŠãããã¬ãŒã¹ã§èå¥ããããã®æ å ±ãã¡ãœããã®ã€ã³ã©ã€ã³åã«äœ¿çšãããŸãã SPECjvm98ããã³Java Grandeãã³ãããŒã¯ã§ãã¹ãããçµæãããã©ãŒãã³ã¹ã10ïŒ åäžããã ãã§ãªããçæããããã·ã³ã³ãŒãã®éã47ïŒ å¢å ããŸãããã·ã¹ãã ã¯ã€ã³ã¿ãŒããªã¿ãŒã§ã®å®è¡äžã«ãã¬ãŒã¹ãèšé²ãããã®åŸããã¬ãŒã¹ãééããã¡ãœããã®éšåã®ã¿ãã³ã³ãã€ã«ããŠã€ã³ã©ã€ã³åããŸããããã«ãããããŒã¯ããã©ãŒãã³ã¹ãåäžããçæããããã·ã³ã³ãŒãã®éãæžããããšãã§ããŸãã
Hazelwood and Grove [16]ã¯ããããã¯ã³ã³ãã€ã©ã§ç¶æ³äŸåã®ã€ã³ã©ã€ã³åãå®è£ ããŸãããåŒã³åºãæ å ±ã®ã¿ã€ããŒãµã³ããªã³ã°ãšèšé²ã¯ãã³ã³ãã€ã«æã«ã€ã³ã©ã€ã³åã決å®ããããã«äœ¿çšãããŸããçæãããã³ãŒãã®éãšã³ã³ãã€ã«æéã¯ãããã©ãŒãã³ã¹ãå€æŽããã«10ïŒ æžå°ããŸããããã®ã·ã¹ãã ã§ã¯ãèšé²ããããã¬ãŒã¹ã«ããã«è©³çŽ°ãªç¶æ³äŸåæ å ±ãå«ãŸããŠããŸããã€ã³ã©ã€ã³ãã¥ãŒãªã¹ãã£ãã¯ã«å¿ããŠãããã«ããããŒã¯ããã©ãŒãã³ã¹ãåäžããããçæããããã·ã³ã³ãŒãã®éãæžå°ããŸãã
ã¡ãœããã®ã€ã³ã©ã€ã³åã¯ããç 究ãããŠããåé¡ã§ãããé¢é£ããæç®ã§ããæ€èšãããŠããŸãããããã£ãŠãæ®ãã®äœæ¥ã¯ã¡ãœããã®ã»ã¯ã·ã§ã³å šäœãã€ã³ã©ã€ã³åããã®ã§ã¯ãªããã¡ãœããã®åã ã®ã»ã¯ã·ã§ã³ã®ã€ã³ã©ã€ã³åææ³ã«éäžããŠãããããã¯ç§ãã¡ã®äœæ¥ã«è¿ããã®ã§ãããã ãããããã®æ¹æ³ã¯ããã¬ãŒã¹ã®ã³ã³ãã€ã«ãè£å®ãããã®ã§ããã¡ãœããã®äžéšã¯æ瀺çã«é€å€ãããŠãããããåœã§ã¯çæããããã·ã³ã³ãŒãã®éã¯ãã¬ãŒã¹ã¬ã³ãŒãã䜿çšããŠéæãããŸãã
ã¡ãœããã®éšåã³ã³ãã€ã«[9ã26]ã¯ããããã¡ã€ã«æ å ±ã䜿çšããŠãã¡ãœããã®ãã£ãã«å®è¡ãããªãéšåãæ€åºããããããã³ã³ãã€ã«ããç Žæ£ããŸããããã«ãããã³ã³ãã€ã«æéãççž®ãããèµ·åé床ãåäžããŸãããŸããããŒã¯ããã©ãŒãã³ã¹ã«è¯ã圱é¿ãäžããå¯èœæ§ããããŸããç§ãã¡ã®ã¢ãããŒãã¯ããã«éžæçã§ãããªããªãé »ç¹ã«å®è¡ããããã¬ãŒã¹ã®ã¿ãèšé²ããã³ã³ã³ãã€ã«ããŸããããã«ãã³ã³ãã€ã«æã«ä¿åããããªãœãŒã¹ã䜿çšããŠãããç©æ¥µçã§ç¶æ³äŸåã®ã€ã³ã©ã€ã³åãæäŸããããŒã¯ããã©ãŒãã³ã¹ãåäžãããŸãã
Suganuma et alã[25]ã¯ãé åã䜿çšããã³ã³ãã€ã«ãå®è£ ããŸããããã®å Žåãã¡ãœããã®ã»ãšãã©å®è¡ãããªãéšåã¯ããã¥ãŒãªã¹ãã£ãã¯ããã³ãããã¡ã€ã«æ å ±ã䜿çšããŠã³ã³ãã€ã«ããé€å€ãããŸãã次ã«ãéãã€ã³ã©ã€ã³åã¡ãœããã䜿çšããŠãå€ãã®å Žåãå®è¡ãããã³ãŒãã1ã€ã®ã³ã³ãã€ã«åäœã«ã°ã«ãŒãåãããŸããããã«ããããã³ãããŒã¯SPECjvm98ããã³SPECjbb2000ã§ã³ã³ãã€ã«æéã20ïŒ ä»¥äžççž®ãããããŒã¯ããã©ãŒãã³ã¹ãå¹³åã§5ïŒ åäžããŸãããã¬ãŒã¹ãééããã¡ãœããã®é »ç¹ã«å®è¡ãããéšåã®ã¿ãã³ã³ãã€ã«ããçç£æ§ãé«ããããã«ãããã®ãã¬ãŒã¹ã®ã€ã³ã©ã€ã³åã䜿çšããŸãã
8.çµè«
ãã®èšäºã§ã¯ããã¬ãŒã¹ãèšé²ãããšãã«éåžžã©ããã«è¡ãã®ã§ã¯ãªããJITã³ã³ãã€ã«äžã«ã€ã³ã¬ã€ããJavaãã¬ãŒãµãŒã³ã³ãã€ã©ã玹ä»ããŸãããããã®ãã¬ãŒã¹ã¯ãã¡ãœããã®å®éã«å®è¡å¯èœãªéšåã®ã¿ããã£ããã£ãããããããé©ããŠããŸããã€ã³ã©ã€ã³åã®æ±ºå®ãJITã³ã³ãã€ã«ã®ç¬éãŸã§å»¶æãããšããã¬ãŒã¹ã®ããéžæçãªã€ã³ã©ã€ã³åãå¯èœã«ãªããŸãããã®ç¬éã«ããå€ãã®æ å ±ãå©çšã§ããããã§ããããã«ãèšé²ããããã¬ãŒã¹ã¯ãã¹ãŠã³ã³ããã¹ãäŸåã§ãããããåŒã³åºãã®ç¹å®ã®å Žæã«åºã¥ããŠã¡ãœããã®ããŸããŸãªéšåãã€ã³ã©ã€ã³åããŸããããã«ãããé©åºŠãªéã®ãã·ã³ã³ãŒããçæããªããããã¬ãŒã¹ãããç©æ¥µçã«ã€ã³ã©ã€ã³åã§ããŸããããã«ãã³ã³ãã€ã«ããåã«ãã£ãã«å®è¡ãããªããã¬ãŒã¹ãåé€ããããšããå§ãããŸããæãé »ç¹ã«å®è¡ããããã¬ãŒã¹ã®ã¿ããã·ã³ã³ãŒãã«å€ãããŸãã
ãã³ãããŒã¯SPECjbb2005ãSPECjvm2008ãããã³DaCapo 9.12 Bachã§ã®ãã¹ãã«ãããæ£ããã€ã³ã©ã€ã³åãããã¬ãŒã¹ã¯ãã€ã³ã©ã€ã³ã¡ãœãããããå°ãªããã·ã³ã³ãŒããçæããªãããããŒã¯ããã©ãŒãã³ã¹ãåäžã§ããããšã瀺ãããŸãããããã«ããã¬ãŒã¹ãã€ã³ã©ã€ã³åãããšã³ã³ãã€ã«é åãæ¡å€§ããã¡ã€ã³ã³ã³ãã€ã©ã®æé©åã®å¹çãåäžããæçµçã«ããŒã¯ããã©ãŒãã³ã¹ãåäžããããšã瀺ããŸããã
è¬èŸ
ãã®äœåãäœæããã«ããããèè ã¯ãªãŒã¹ããªã¢ç§åŠåºéïŒFWFïŒãæ¯æŽããŸããïŒãããžã§ã¯ãçªå·P 22493-N18ã Oracleããã³Javaã¯ãOracleããã³/ãŸãã¯ãã®é¢é£äŒç€Ÿã®ç»é²åæšã§ããä»ã®ãã¹ãŠã®ååããããããã®ææè ã®ç»é²åæšã§ãã
ãã®ç¿»èš³ã¯ãJUG.RUããŒã ãäž»å¬ããJokerãJPointãªã©ã®äŒè°ã«åå ããããšã§åŸãããææ çãªåäžãªãã«ã¯å®çŸã§ããªãã£ãã§ããããããæ¥ãäŒè°ãã家ã«åž°ããšãäœããæžããªããã°ãªããªãããšã«æ°ã¥ããŸãã
åç §è³æ
- Bala V, Duesterwald E, Banerjia S. Dynamo: a transparent dynamic optimization system. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation. ACM Press; 2000. p. 1â12.
- Bebenita M, Chang M, Wagner G, Gal A, Wimmer C, Franz M. Trace-based compilation in execution environments without interpreters. In: Proceedings of the international conference on the principles and practice of programming in Java. ACM Press; 2010. p. 59â68.
- Blackburn SM, Garner R, Hoffman C, Khan AM, McKinley KS, Bentzur R, et al. The DaCapo benchmarks: Java benchmarking development and analysis. In: Proceedings of the ACM SIGPLAN conference on object-oriented programming systems, languages, and applications. ACM Press; 2006. p. 169â90.
- Bornstein D. Dalvik VM Internals. Presented at the Google I/O developer conference, 2008. â©http://sites.google.com/site/io/dalvik-vm-internalsâª.
- Bradel BJ, Abdelrahman TS. The use of traces for inlining in Java programs. In: Proceedings of the international workshop on languages and compilers for parallel computing, 2004. p. 179â93.
- Cheng B, Buzbee B. A JIT compiler for Android's Dalvik VM. Presented at the Google I/O developer conference, 2010. â©http://www.google.com/events/ io/2010/sessions/jit-compiler-androids-dalvik-vm.htmlâª.
- Cytron R, Ferrante J, Rosen BK, Wegman MN, Zadeck FK. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 1991;13(4):451â90.
- Dean J, Grove D, Chambers C. Optimization of object-oriented programs using static class hierarchy analysis. In: Proceedings of the European conference on object-oriented programming. Springer-Verlag; 1995. p. 77â101.
- Fink S, Qian F. Design, implementation and evaluation of adaptive recompilation with on-stack replacement. In: Proceedings of the international symposium on code generation and optimization. IEEE Computer Society; 2003. p. 241â52.
- Gal A, Eich B, Shaver M, Anderson D, Mandelin D, Haghighat MR, et al. Trace-based just-in-time type specialization for dynamic languages. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation. ACM Press; 2009. p. 465â78
- Gal A, Franz M. Incremental dynamic code generation with trace trees. Technical Report. Irvine, USA: Donald Bren School of Information and Computer Science, University of California; 2006
- Gal A, Probst CW, Franz M. HotpathVM: an effective JIT compiler for resource-constrained devices. In: Proceedings of the international conference on virtual execution environments. ACM Press; 2006. p. 144â53.
- R. Griesemer, Generation of virtual machine code at startup. In: OOPSLA workshop on simplicity, performance, and portability in virtual machine design. Sun Microsystems, Inc.; 1999
- HÀubl C, Mössenböck H. Trace-based compilation for the Java HotSpot virtual machine. In: Proceedings of the international conference on the principles and practice of programming in Java. ACM Press; 2011. p. 129â38.
- HÀubl C, Wimmer C, Mössenböck H. Evaluation of trace inlining heuristics for Java. In: Proceedings of the ACM symposium on applied computing. ACM Press; 2012. p. 1871â6.
- Hazelwood K, Grove D. Adaptive online context-sensitive inlining. In: Proceedings of the international symposium on code generation and optimization. IEEE Computer Society; 2003. p. 253â64.
- Hölzle U, Chambers C, Ungar D. Debugging optimized code with dynamic deoptimization. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation. ACM Press; 1992. p. 32â43
- Inoue H, Hayashizaki H, Wu P, Nakatani T. A trace-based Java JIT compiler retrofitted from a method-based compiler. In: Proceedings of the international symposium on code generation and optimization. IEEE Computer Society; 2011. p. 246â56
- Kotzmann T, Wimmer C, Mössenböck H, Rodriguez T, Russell K, Cox D. Design of the Java HotSpot client compiler for Java 6. ACM Transactions on Architecture and Code Optimization 2008;5(1):7.
- Oracle corporation. Java platform, standard edition 8 developer preview releases; 2011 â©http://jdk8.java.net/download.htmlâª
- Paleczny M, Vick C, Click C. The Java HotSpot server compiler. In: Proceedings of the Java virtual machine research and technology symposium. USENIX, 2001. p. 1â12.
- Rogers I. Optimising Java programs through basic block dynamic compilation. PhD thesis. Department of Computer Science, University of Manchester; 2002幎ã
- Standard Performance Evaluation Corporation. The SPECjbb2005 Benchmark; 2005 â©http://www.spec.org/jbb2005/âª.
- Standard Performance Evaluation Corporation. The SPECjvm2008 benchmarks; 2008 â©http://www.spec.org/jvm2008/âª.
- Suganuma T, Yasue T, Nakatani T. A region-based compilation technique for dynamic compilers. ACM Transactions on Programming Languages and Systems 2006;28:134â74.
- Whaley J. Partial method compilation using dynamic profile information. SIGPLAN Notices 2001;36:166â79
- Wimmer C, Mössenböck H. Optimized interval splitting in a linear scan register allocator. In: Proceedings of the ACM/USENIX international conference on virtual execution environments. ACM Press; 2005. p. 132â41.
- Wu P, Hayashizaki H, Inoue H, Nakatani T. Reducing trace selection footprint for large-scale java applications without performance loss. In: Proceedings of the ACM international conference on object oriented programming systems languages and applications. ACM Press; 2011. p. 789â804.
èè
ChristianHÀublã¯ããªãŒã¹ããªã¢ã®ãªã³ãã«ããJohannes Kepler倧åŠã®å士課çšã®åŠçã§ããã¬ãŒãµãŒJavaã³ã³ãã€ã©ãŒã«åãçµãã§ããŸãã圌ã¯ãäž¡æ¹ãšããšããã¹ã±ãã©ãŒå€§åŠãªã³ãã§ã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ãšãããã¯ãŒã¯ããã³ã»ãã¥ãªãã£ã®åŠäœãååŸããŠããŸãã圌ã¯ã³ã³ãã€ã«ãšä»®æ³ãã·ã³ã«é¢é£ããåéã«èå³ããããŸãããã»ãã¥ãªãã£ãšWebã¢ããªã±ãŒã·ã§ã³ã«åãæ¿ããããšããããŸãã
ã¯ãªã¹ãã£ã³ã»ãŠã£ããŒ-Oracle Labsã®ç 究è ã¯ãMaxineVMãGraalã³ã³ãã€ã©ãããã³åçã³ã³ãã€ã«ãšæé©åã«é¢é£ããä»ã®ãããžã§ã¯ãã«åŸäºããŸããã圌ã®ç 究察象ã¯ãã³ã³ãã€ã©ãä»®æ³ãã·ã³ãã³ã³ããŒãã³ããœãããŠã§ã¢ã¢ãŒããã¯ãã£çšã®ã»ãã¥ã¢ã·ã¹ãã ã«é¢é£ããŠããŸãã圌ã¯ãªã³ãã®ãšããã¹ã±ãã©ãŒå€§åŠã§ã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ïŒç£ç£ïŒãã³ã¹ããã¿ãŒã¡ãã»ã³ããã¯ææïŒããå士å·ãååŸããŸããã Oracleã«å ¥ç€Ÿããåã¯ãã«ãªãã©ã«ãã¢å€§åŠã®ã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹åŠéšã§å士課çšã®åŠçã§ããã圌ã¯ãSecure Systems and Software Laboratoryã®Michael Franzææãšãã³ã³ãã€ã©ã®æé©åãåçããã°ã©ãã³ã°èšèªãããã³èšèªã»ãã¥ãªãã£ã«ã€ããŠåããŠããŸããã
ãã³ã¹ããã¿ãŒã»ã¡ãã»ã³ããã¯-ãªã³ãã»ãšããã¹ã»ã±ãã©ãŒå€§åŠã®ã³ã³ãã¥ãŒã¿ãŒã»ãµã€ãšã³ã¹ææãã¯ãªã¹ãã£ã³ã»ãããã©ãŒèªåãœãããŠã§ã¢å·¥åŠç 究ææé·ã1987幎ã«ãªã³ã倧åŠã§å士å·ãååŸãã1988幎ãã1994幎ãŸã§ETHãã¥ãŒãªããã§å©ææãåãããã¯ã©ãŠã¹ã¯ãŒã¹ææãšãªããã³ã·ã¹ãã ã«ã€ããŠç 究ããŸãããçŸåšã®ç 究察象ã¯ãããã°ã©ãã³ã°èšèªãšã³ã³ãã€ã©ããªããžã§ã¯ãæåããã°ã©ãã³ã°ãšã³ã³ããŒãã³ãããã°ã©ãã³ã°ã§ãã圌ã¯ãããã°ã©ãã³ã°æè²ã«é¢ããããã€ãã®æ¬ã®èè ã§ãã
翻蚳è
Oleg Chirukhin-ãã®ããã¹ããæžããŠããæç¹ã§ã¯ãSberbank-Technologyã§ã¢ãŒããã¯ããšããŠåããŠãããèªååãããããžãã¹ããã»ã¹ç®¡çã·ã¹ãã ã®ã¢ãŒããã¯ãã£ã®éçºã«åŸäºããŠããŸããSberbank Technologiesã«å ¥ç€Ÿããåã¯ãæ¿åºãµãŒãã¹ãé»åå»çèšé²ãå«ãããã€ãã®æ¿åºæ å ±ã·ã¹ãã ã®éçºãããã³ãªã³ã©ã€ã³ã²ãŒã ã®éçºã«åå ããŠããŸãããçŸåšã®ç 究察象ã«ã¯ãä»®æ³ãã·ã³ãã³ã³ãã€ã©ãããã°ã©ãã³ã°èšèªãå«ãŸããŸãã