ããã«ã¡ã¯ Hexletã§Javaã³ãŒã¹ã®äœæã«é¢äžããŠããç§ãã¡ã®ããŒã ã¯ãéåžžã«èå³æ·±ããšæãããèšäºã®ç¿»èš³ãéå§ããããšã«ããŸããã ãã®åé¡ã«æºãã£ãåŸãHabréã¯ã ã¢ãã€ã«Webã¢ããªã±ãŒã·ã§ã³ããªããããªã«é ãã®ã ããšããã¿ã€ãã«ã®ãã°ãããèšäºã®ç¿»èš³ããŸã å®è¡ããŠããªãããšãããããŸããã ãããä»æ¥ããªãã®æ³šæãåŒãã®ã¯ããã®éšåã®ç¿»èš³ã§ãã ãã®èšäºã¯æ°ãããã®ã§ã¯ãªããHabréããã®ç¿»èš³ãæºãããŠããªãããšã¯ããã«é©ãã¹ãããšã§ããããåœç¶ãªããå€ãã®ãã³ãããŒã¯ã¯æ代é ãã§ããããã®ã¢ã€ãã¢ã«ïŒã¢ã€ãã¢ã§ã¯ïŒé¢é£ããŠããããã§ãã Habraã³ãã¥ããã£ãå§ãŸãã奜ãã ãã2çªç®ã®éšåãå ¬éãããšãšãã«ãéåžžã«èå³æ·±ããšæãããHabréã«ã¯æ²èŒãããªãã£ãä»ã®èšäºã®ç¿»èš³ã®å ¬éãéå§ããŸãã
ã¢ãã€ã«Webã¢ããªã±ãŒã·ã§ã³ã®åäœãé ããšäž»åŒµããååã®èšäºã§ã¯ãéåžžã«å€ãã®èå³æ·±ãäŒè©±ãè¡ãããŸããã ãªã³ã©ã€ã³ãšå®ç掻ã®äž¡æ¹ã§è°è«ãè¡ãããŸããããæ®å¿µãªãããããã¯ç§ãæãã§ããã»ã©äºå®ã§ã¯ãããŸããã§ããã
ãã®ç¹ã«é¢ããŠããã®æçš¿ã§ã¯ãæ ¹æ ã®ãªãå«ã³ãæé ããã ãã§ãªãããã®åé¡ãè°è«ããããã®çã®èšŒæ ãæ瀺ããŸãã éèŠãªãã€ã³ããèŠãããå°é家ã®æèŠãèãããããã®ãããã¯ã«é¢ããæ確ãªãžã£ãŒãã«èšäºãèªãã ãããããšãã§ããŸãã ãã®æçš¿ã«ã¯100ãè¶ ããåŒçšãå«ãŸããŠããŸãããããã¯åè«ã§ã¯ãããŸããã ãã®èšäºãããªããçŽåŸãããããšããŸãã¯æ瀺ããããã¹ãŠã®æ å ±ã«ééãããªãããšïŒãã®ãµã€ãºã®èšäºã§ã¯äžå¯èœã§ãïŒãä¿èšŒããããšã¯ã§ããŸããããããã¯ã¢ãã€ã«ã®å€ãã®iOSéçºè ã®æèŠã®æãå æ¬çãã€è©³çŽ°ãªåæã§ããããšãä¿èšŒã§ããŸãWebã¢ããªã±ãŒã·ã§ã³ã¯åäœããè¿ãå°æ¥ããã£ããåäœããŸãã
èŠåïŒããã¯éåžžã«éå±ã§é·ãèšäºã§ãã»ãŒ1äžèªã§ãã ããããã©ãŒãããã§ãã æè¿ãç§ã¯äººæ°ã®ããèšäºãããè¯ãèšäºã奜ã¿ãŸãã ããã¯ãç§ã以åã«æ±ããŠãããã®ãå®è·µããã ãã§ãªããè¯ãèšäºãæžãããã®ç§ã®è©Šã¿ã§ããäºå®ã«åºã¥ããèå³æ·±ãè°è«ã奚å±ããæ°ã®å©ããã³ã¡ã³ããæ§ããŸãã
ãã®ãããã¯ãééãªãè°è«ããããšããçç±ã§ããã®èšäºãéšåçã«æžããŸãïŒå³ãããã¬ãŒãºã®äº€æãšãã圢ã§ïŒã ããã¯ãããã³ã°ããããããã¯ã«é¢ããå¥ã®èšäºã§ã¯ãããŸããããããã£ãŠããããããæ¬åœã®Webã¢ããªã±ãŒã·ã§ã³ã¯ãã¡ïŒãããã¡ããã¡ããšãã粟ç¥ã§30ç§ã®ãã£ãããæ¢ããŠãããªãããã®èšäºã¯ããªãã«ã¯åããŠããŸããã ãŠã§ãã«ã¯ããããããããŠãæ¯ãã§ããªãããããŠãã ãããæèŠãå€ããäºå®ãã»ãšãã©ãªãããªã©ã®ç²Ÿç¥ã§ãããããè°è«ããããããããŸãã äžæ¹ãç§ãç¥ãéããçŸæç¹ã§ã¯ããã®åé¡ã«é¢ãã詳现ã§æçã§é©åãªè°è«ãèŠã€ããå Žæã¯ãããŸãã ã ããã¯éåžžã«æããªã¢ã€ãã¢ã®ããã«æãããããããŸãããããã®èšäºã¯ãçã§æºããããå®å šã«æå³ã®ãªãå¹³å¡ãªè«äºããã§ã«åŒãèµ·ãããŠãããããã¯ãå·éã«è°è«ããç§ã®è©Šã¿ãè¡šããŠããŸãã ç§ã®ç«å Žã¯ããã§ããåé¡ã¯ããããåé¡ãããé©åã«è°è«ã§ãã人ã ã¯è°è«ã®å¯Ÿè±¡ã§ã¯ãªãè°è«ã«åå ããªããšããããšã§ãã ãããæ£ãããã©ããã¯ããããšæããŸãã
ãããã£ãŠããã§ã«æãããªWebé©åœã®åå€ã«äžéãªãããã©ã€ãšã¿ãªã¢ããªã±ãŒã·ã§ã³ãæžãç¶ããŠãã仲éã®éçºè ã«ã©ã®ãããªçæ°ãçããŠããããç¥ãããå ŽåããŸãã¯äœãä»ã®ãã®ãèŠã€ãããã®ããŒãžãããã¯ããŒã¯ããèªåã§ã³ãŒããŒãããèŠã€ããŠãã ããèªç±ãªå€ãå¿«é©ãªæ€ åã«åº§ã£ãŠãä»ãç§ãã¡ã¯è°è«ã®æºåãã§ããŠããŸãã
çãã¬ãã¥ãŒ
以åã®æçš¿ã§ãä»æ¥ã®ã¢ãã€ã«Webã¢ããªã±ãŒã·ã§ã³ã¯é ããšããSunSpiderã®äŸãè«ããŸããã
ããã¡ããããWebã¢ããªã±ãŒã·ã§ã³ããšã¯ã1ã€ãŸãã¯2ã€ã®ãã¿ã³ãåããWebãµã€ãããæå³ããå ŽåããSunSpiderãªã©ã®æšããªããã©ãŒãã³ã¹ãã¹ãããã¹ãŠå°çã«éãããšãã§ããŸãã ãé«éã¯ãŒãããã»ãã·ã³ã°ãåçç·šéãããŒã«ã«ã¹ãã¬ãŒãžãç»é¢éã®ã¢ãã¡ãŒã·ã§ã³ããæå³ããå Žåãèªæ®ºããŠããªãéããARMã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§ãããè¡ãã¹ãã§ã¯ãããŸããã
ãã®èšäºã¯æ¬åœã«èªã䟡å€ããããŸãããããã©ãŒãã³ã¹ãã¹ããåŒãç¶ã瀺ããŸãã
äžè¬ã«ããã®æ¯èŒãã¹ãã¯3ã€ã®èŠ³ç¹ããæ¹å€ãããŠããŸãã
- JSã³ãŒãããã€ãã£ãã³ãŒããããé
ãããšã¯ç§å¯ã§ã¯ãããŸãããCS1ã§ãã³ã³ãã€ã«ãããèšèªãJITèšèªãããã³è§£éãããèšèªãæ¯èŒãããšã誰ãããã®ããšãç¥ã£ãŠããŸãã åé¡ã¯ããã®é
ãåäœãäœæããããã°ã©ã ã«ã©ã®çšåºŠåœ±é¿ãããã§ãããåæ§ã®ããã©ãŒãã³ã¹ãã¹ãã§ã¯ãã®åé¡ãäœããã®æ¹æ³ã§è§£æ±ºããããšã¯ã§ããŸããã
- ã¯ããJSã¯ããé
ããããã¯éèŠã§ããããã®ããã©ãŒãã³ã¹ã¯çµ¶ããæé·ããŠãããããæ¥ãé床ã®å·®ããã§ã«éèŠã§ãªãããšã«åããŠæ°ä»ãã®ã§ãä»ããJSã«æè³ãå§ââããŠãã ããã
- ç§ã¯Python / PHP / Rubyã§ãµãŒããŒããã°ã©ã ãæžããŠããŸãããããªããããã§äœãé転ããŠãããŸããŸããã ç§ã®ãµãŒããŒã¯ã¢ãã€ã«ããã€ã¹ãããé«éã§ããããšã¯ç¥ã£ãŠããŸãããå®éã«ã¯ã å®éã«è§£éãããèšèªã䜿çšããŠX000ãŠãŒã¶ãŒã«ãµãŒãã¹ãæäŸããããšã¯é£ãããããŸããããé«æ§èœã³ã³ãã€ã©ãŒã䜿çšããŠèšèªã§1人ã®ãŠãŒã¶ãŒã«ãµãŒãã¹ãæäŸããæ¹æ³ãæ³åã§ããŸããïŒ JitïŒ ããã¯ã©ããããé£ããã®ã§ããããïŒ
ãã®èšäºã®3ã€ã®äž»åŒµãã¹ãŠã«åè«ãããšãããããªãéå¿çãªç®æšãèšå®ããŸããã ã¯ããJSã¯äœéã§ãæ¬åœã«éèŠã§ãã ããããè¿ãå°æ¥ãç®ç«ã£ãŠéããªãããšã¯ãããŸããã ãããããµãŒããŒããã°ã©ãã³ã°ã®çµéšã§ã¯ããå°èŠæš¡ããå§ããŠããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãæ£ãã説æããããã®é©åãªæºåãã§ããŸããã
äž»ãªåé¡ã¯ããã®ãããã¯ã«é¢ãããã¹ãŠã®èšäºã§ã JSã³ãŒãã®åäœãé ãããšã瀺ãæ°å€ããã£ãã«äžããããªãããšããŸãã¯äœããã®æçšãªæ¯èŒåºæºãäžãããã ããšã§ã ïŒãã£ãã... äœãšæ¯èŒããŠïŒ ïŒã ãããä¿®æ£ããããã«ããã®èšäºã§ã¯JavaScriptã«å¯ŸããŠ1ã€ã§ã¯ãªã3ã€ã®åçã®ããã©ãŒãã³ã¹ãæäŸããŸãã ãããã£ãŠãç§ã¯ãJSã®é ãä»äºãã«ã€ããŠãå€ãæãã«åè«ããã ãã§ãªãããããã©ãã»ã©é ãããæ°åã§ç€ºããå®éã®ããã°ã©ãã³ã°ããã®å€ãã®ææšãšæ¯èŒããŠããã©ãããã©ãŒã ãéžæããå¿ èŠã«çŽé¢ãããšãã«èªåã§ã§ããããã«ããŸãè¿ éã«èšç®ãè¡ããJavaScriptãç¹å®ã®åé¡ã解決ããã®ã«å¹æçãã©ãããå€æããŸãã
ããã¯ãã¹ãŠè¯ãããšã§ãããJSããã©ãŒãã³ã¹ãšãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãã©ã®ããã«æ£ç¢ºã«æ¯èŒããã®ã§ããããïŒ
ãã質åã§ãã ããã«çããããã«ããã³ãããŒã¯ã²ãŒã ããä»»æã®ããã©ãŒãã³ã¹ãã¹ããéžæããŸãã ã 次ã«ãåããã¹ããå®è¡ããå€ãCããã°ã©ã ãèŠã€ããŸããïŒæ°ããããã°ã©ã ã«ã¯x86åºæã®è©³çŽ°ããããããããããå€ãïŒã ãã®åŸããã¹ãæžã¿ã®iPhone 4Sã§NitroãšLLVMãæ¯èŒããŸããã ãã®ã³ãŒãã¯ãã¹ãŠGitHubã«ãããŸã ã
ãããã¯ãã¹ãŠéåžžã«arbitraryæçã§ãããå®éã«å®è¡ããã³ãŒãã¯arbitraryæçã§ãã ããè¯ãå®éšãå¿ èŠãªå Žåã¯ãå®éšããŠãã ããã LLVMãšNitroãæ¯èŒããä»ã®å®éšã¯ãŸã ãªããããããã¯ç§ã®å®éšã§ãã
ãããã«ããŠãããã®åæããã©ãŒãã³ã¹ãã¹ãã§ã¯ãLLVMã¯åžžã«Nitroãã4.5åé«éã§ãã
ãããã£ãŠãNitro JSãšæ¯èŒããŠãã€ãã£ãã³ãŒãã®ããã»ããµå¶éæ©èœãã©ãã ãé«éã§ãããã«èå³ãããå Žåãçãã¯ãçŽ5åãã«ãªããŸãã ãã®çµæã¯äžè¬ã«ãx86 / GCC / V8ã®ãã³ãããŒã¯ã²ãŒã ã®çµæãšäžèŽããŸããããã«ãããš ãGCC / x86ã¯å šäœãšããŠV8 / x86ãã2ã9åé«éã§ãã ãããã£ãŠãçµæã¯çå®ã«è¿ãããã§ãARMãšx86ã®ã©ã¡ãã䜿çšãããã«äŸåããŸããã
ããããããã©ãŒãã³ã¹ã®1/5ã¯ååã§ã¯ãããŸãããïŒ
x86ã§ååã§ãã å®éãããã»ããµã¯ããŒãã«ãã©ãã ãã¬ã³ããªã³ã°ããŸããïŒ ãããªã«ãªãã åé¡ã¯ãARMãx86ã§ã¯ãªãããšã§ãã
GeekBenchã«ãããš ãææ°ã®MBPã¢ãã«ãšææ°ã®iPhoneã¢ãã«ãæ¯èŒãããš10ã®ä¿æ°ã瀺ãããããããã¹ãŠãæ£åžžã§ãããŒãã«ã¯ããã»ã©éããããŸããã 10ïŒ ã®çç£æ§ã§äœæ¥ã§ããŸãã ãããŠãããªãã¯ãŸã ããã5ã€ã«åãããã§ããïŒ ãã©ããŒãç·ïŒ ããã§ããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒã®2ïŒ ã®ããã©ãŒãã³ã¹ãåŸãããŸããïŒãŠããããã©ã³ãã ã«æäœããŸããã1æ¡ã®èŠæš¡ã§åŠçããŠããŸãã倧äžå€«ã§ãïŒã
è¯ãã§ãããã¯ãŒããã¯æ¬åœã«ã©ãã»ã©é£ããã§ããïŒ m68kãªã©ã®ããã»ããµã§ãããå®è¡ããå¥ã®ããã»ããµãè¿œå ããããšã¯ã§ããŸãããïŒ ããŠããã®è³ªåã«ã¯çããããŸãã èŠããŠããªããããããŸããããGoogleããã¥ã¡ã³ãããªã¢ã«ã¿ã€ã ã§æäœããããšã¯ãåãªãèµ·åæ©èœã§ã¯ãããŸããã 2010幎4æãŸã§ã«å€ãã®ããšãæžãçŽããŸããã 2010幎4æã®ãã©ãŠã¶ã®ããã©ãŒãã³ã¹ãèŠãŠã¿ãŸãããã
ãã®ã°ã©ãããå€æãããšãiPhone 4Sã¯ãGoogleããã¥ã¡ã³ããšãªã¢ã«ã¿ã€ã ã§ããåãããæ代ã®Webãã©ãŠã¶ãŒãšãŸã£ããæ¯èŒã§ããªãããšã¯æããã§ãã ãã ããIE8ãšç«¶åã§ããŸãã
å¥ã®æ¬æ ŒçãªJavaScriptã¢ããªã±ãŒã·ã§ã³ãGoogle Waveãæ€èšããŠãã ããã Googleã«ãããš ãWaveã¯IE8ã®åäœãé ããããããIE8ããµããŒãããŠããŸããã
ïŒInternet Explorerã§Google Waveã䜿çšããã«ã¯ãGoogle Chrome Frameãã©ãŠã¶ãŒçšã®ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãããŸãã¯ã次ã®ãã©ãŠã¶ãŒã®ããããã䜿çšã§ããŸããGoogleChromeãSafari 4ãFirefox 3.5ãã¹ãããïŒã
ãããã®ãã©ãŠã¶ãiPhone 4Sãããé«éã§ããããšã確èªããŠãã ããã
ãµããŒããããŠãããã¹ãŠã®ãã©ãŠã¶ãŒã§1000æªæºã®çµæã衚瀺ãããã®ãããããŸãã3800ã®çµæã衚瀺ãããã©ãŠã¶ãŒã¯ãäœéã®ããé€å€ãããŸããïŒ iPhoneã¯2400ã®çµæã衚瀺ããŸããIE8ãšåæ§ã«ãWaveãå®è¡ããã®ã«ååãªé床ã§ã¯ãããŸããã
æ確ã«ããŸãããã ã¢ãã€ã«ããã€ã¹ã§ã¯ãªã¢ã«ã¿ã€ã ã§äœæ¥ã§ããŸãããJavaScriptã§ã¯ã§ããŸããã ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãšWebã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã®éãã¯ãFireFoxãšIE8ã®ããã©ãŒãã³ã¹ã®éãã«å¹æµããŸãã ããã¯çé¢ç®ãªä»äºã«ã¯éãããã ã
ããããV8 /ã¢ãã³JSã®ããã©ãŒãã³ã¹ã¯Cãšã»ãŒåããããè¯ããšæããŸããïŒ
ããã¯ãã¹ãŠãã»ãŒãã®æå³ã«äŸåããŸãã Cããã°ã©ã ã10ããªç§ã§å®è¡ããå ŽåãJavaScriptããã°ã©ã ã®50ããªç§ã®é床ã¯Cã®é床ãšãã»ãŒãçãããªããŸããCããã°ã©ã ã10ç§ã§å®è¡ããå Žåãã»ãšãã©ã®æ®éã®äººã®JavaScriptããã°ã©ã ã®50ç§ã¯æããã«Cãšã»ãŒçããé床ã«ãªããŸãã
ããŒããŠã§ã¢ã®åŽé¢
ããã§ãã x86ã¯5åã®ä¿æ°ã§åé¡ãããŸãããããã¯ãäž»ã«x86ãARMããã10åéãããã§ãã æ瞊ã®äœå°ã¯ååã«ãããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãARMã10åã ãé«éåããããšãæ確ã«æå³ããŠãããããx86ã«å¹æµãããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒã§JSã®ãããªããã©ãŒãã³ã¹ãè¿œå ã®åŽåãªãã§å®çŸã§ããŸãã
ãããæ©èœãããã©ããã¯ã3ãªã³ã¹ã®ããããªãŒã§ããããå é»ããè©Šã¿ã«é¢ããã ãŒã¢ã®æ³åã«å¯Ÿããããªãã®ä¿¡å¿µã«äŸåããŸãã ç§ã¯ããŒããŠã§ã¢ãšã³ãžãã¢ã§ã¯ãããŸãããã以åã¯å€§èŠæš¡ãªåå°äœè£œé äŒç€Ÿã§åããŠããŸããããåŸæ¥å¡ã¯çŸåšãçç£æ§ã¯äž»ã«æè¡ããã»ã¹ ïŒã€ãŸããããã¡ãŒãã«ã§æž¬å®ãããå€ïŒã«äŸåããŠãããšèšããŸããã iPhone 5ã®å°è±¡çãªããã©ãŒãã³ã¹ã¯ãäž»ã«æè¡ããã»ã¹ã®45 nmãã32 nmãžã®æžå°ãã€ãŸãçŽ3åã®1ã®æžå°ã«é¢é£ããŠããŸããããããç¹°ãè¿ãã«ã¯ã補é ããã»ã¹ã22 nmã«çž®å°ããå¿ èŠããããŸãã
åèã®ããã«ïŒIntelã®22nm x86 Atom Bay TrailããŒãžã§ã³ã¯çŸåšååšããŸãã ã æšæºããŒãžã§ã³ã¯22 nmã®ã¹ã±ãŒã«ã§ã¯æ©èœããªãã£ããããIntelã¯ãŸã£ããæ°ããçš®é¡ã®å°äœãçºæããå¿ èŠããããŸããã 圌ãã¯ARMã©ã€ã»ã³ã¹ã販売ãããšæããŸããïŒ ããäžåºŠèããŠãã ããã ããã22nmã®éç©åè·¯äŒæ¥ã®ã¿ãäžçã§çå£ã«æ§ç¯ãããäºå®ã§ããããããã®ã»ãšãã©ã¯Intelã«ãã£ãŠç®¡çãããŠããŸãã
å®éãARMã¯è£œé ããã»ã¹ã28 nmçšåºŠã«æžããããåªåããŠããããã§ããïŒA7ãåç §ïŒãIntelã¯22 nmãå Žåã«ãã£ãŠã¯20 nmãç®æããŠããŸãã ããŒããŠã§ã¢ã®åŽé¢ã ããèæ ®ãããšãx86ã¯ã©ã¹ã®ããã©ãŒãã³ã¹ãåããx86ãããã¯ãx86ã¯ã©ã¹ã®ããã©ãŒãã³ã¹ãåããARMããããåæžããæ©äŒãçãããããã¯ããã«æ©ãã¹ããŒããã©ã³ã§äœ¿çšãããå¯èœæ§ãé«ãããã§ãã
ã¡ãŒã«ãéã£ãŠãããå ã€ã³ãã«ãšã³ãžãã¢ããã®ã¡ã¢ïŒ
ãç§ã¯ã¢ãã€ã«ããã€ã¹çšã®ãã€ã¯ãããã»ããµè£œåã®ã©ã€ã³ã§åãããã®åŸAtomsã§åããå ã€ã³ãã«ãšã³ãžãã¢ã§ãã ç§ã®ä¿¡ããããªãã»ã©åã£ãæèŠã§ã¯ãARMããã倧ããªã«ãŒãã«ã®ãæ©èœã®ã»ããããåããé»è©±ã«x86ãã€ã³ã¹ããŒã«ããŠãããã©ãŒãã³ã¹ã§x86ã«è¿œãã€ãããããã®æ©èœããŒãããéçºããæ¹ãç°¡åãããããŸãããã
ç§ã«ã¡ãŒã«ãéã£ããããã£ã¯ã¹ã®å ãšã³ãžãã¢ããã®ã¡ã¢ïŒ
ã圌ãã¯çç£æ§ããããã«åäžãããããšããããŠã€ã³ãã«ãæ°å¹Žä»¥å ã«ã¢ãã€ã«ããã€ã¹åãã®ããé«éãªããã»ããµãæèŒããå¯èœæ§ãããããšã¯çµ¶å¯Ÿã«æ£ããã§ãã å®éãçŸåšãã¢ãã€ã«ããã»ããµã¯3 GHzã«éãããšãã«ãã¹ã¯ãããããã»ããµãšåãå¶éããããŸããã¯ããã¯åšæ³¢æ°ãããã«äžããããšã¯ãé»åãå€§å¹ ã«å¢å ãããªããã°å®çšçã§ã¯ãããŸããã ããã¯ã次ã®ããã»ã¹ããŒãã«ãåœãŠã¯ãŸããŸãããIPCããããã«ïŒãããã10ã20ïŒ ïŒå¢ããããšãã§ããã¯ãã§ãã ãã®å¶éã«çŽé¢ãããšããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒçšã®ãã¥ã¢ã«ã³ã¢ããã³ã¯ã¢ããã³ã¢ããã»ããµã®è£œé ãéå§ãããŸãããããããäžã®ã¢ãã€ã«ã·ã¹ãã ã¯æ¢ã«ãã¥ã¢ã«ã³ã¢ããã³ã¯ã¢ããã³ã¢ã§ãããããé«éåã¯å®¹æã§ã¯ãããŸããã
ãããã£ãŠãæçµçã«ã¯ã ãŒã¢ã®æ³åã¯çå®ãããããŸããããx86ãžã®ç§»è¡ã«ã¯ã¢ãã€ã«ãšã³ã·ã¹ãã å šäœãå¿ èŠã§ãã ããã¯äžå¯èœã ãšèšãããšã§ã¯ãªãã ãã§ã«è¡ãããŠããŸã ã 確ãã«ãããã¯å¹Žé販売ãçŽ100äžå°ã«éããä»ã§ã¯ååæããšã« 6,200äžå°ã販売ãããæ代ã§ããã ããã¯ãå€ãã¢ãŒããã¯ãã£ãçŽ60ïŒ ã®é床ã§æš¡å£ã§ããæ¢è£œã®ä»®æ³åç°å¢ã䜿çšããŠè¡ãããŸããã äžæ¹ãæé©åãããïŒO3ïŒã³ãŒãã«å¯Ÿããææ°ã®ä»®æ³åä»®æ³æ€çŽ¢ãšã³ãžã³ã®ããã©ãŒãã³ã¹ã¯27ïŒ ã«è¿ã¥ããŠããŸãã
JavaScriptãæçµçã«ããã«å°éãããšæãããå Žåã¯ãããŒããŠã§ã¢ã®ã¢ããã°ã¬ãŒããæãå¹æçãªæ¹æ³ã«ãªããŸãã Intelã¯5幎åŸã«ïŒããããïŒå®è¡å¯èœãªããããæèŒããAppleã¯ã³ã³ã»ãããå€æŽããïŒãããããªãïŒããARMã¯æ¬¡ã®10幎ã§ã²ãŒã ãçµäºããŸãïŒ10人ã®ããŒããŠã§ã¢ãšã³ãžãã¢ã«çžè«ãããšããã®ãããªãªãã·ã§ã³ã®å¯èœæ§ã«ã€ããŠ10ã®ç°ãªãæèŠãåŸãããŸãïŒã ãããã10幎ã¯æåãããããžã§ã¯ãã«ãšã£ãŠé·ãæéã§ãã
ããŒããŠã§ã¢ã«é¢ããç§ã®ç¥èãããã§çµããã®ã§ã¯ãªãããšæããŸãã ç§ãããªãã«äŒããããšãã§ããããšã¯äžã€ã ãã§ããããARMãä»åŸ5幎éã§x86ãšã®ã®ã£ãããåããããšãä¿¡ããããªãããŸãARMãŸãã¯x86ã§åããŠãã人ïŒã€ãŸããæ¬åœã«ç¥èããã人ïŒãèŠã€ããŠåœŒãåæããå¿ èŠããããŸãããªãã«ãã£ãŠã ãã®èšäºãæžãããã«ãç§ã¯å€ãã®è³æ Œã®ãããšã³ãžãã¢ãšçžè«ããŸããããå šå¡ããã®ç«å Žãå ¬åŒã«è¡šæããããšãæåŠãããããè¯ãããšã¯äœããªãããã§ãã
ããã°ã©ã ã®åŽé¢
å€ãã®æèœãªãœãããŠã§ã¢ãšã³ãžãã¢ãããã§ç«ã¡æ¢ãŸã£ãŠããŸãã 圌ãã¯ãã®ããã«èããŠããŸãïŒJavaScriptã¯ããé«éã«ãªããå éãç¶ããŸãïŒ
ãã®æã®æåã®éšåã¯çå®ã§ãã JavaScriptã¯ã¯ããã«é«éã«ãªããŸããã ããã«ããããããããã§ã«ããŒã¯ã«éããŠãããå°æ¥ããã®é床ã¯å€§å¹ ã«å¢å ããŸããã
ãªãã§ïŒ 第äžã«ãJavaScriptã®æŽå²ã®æ¹åã®ã»ãšãã©ã¯ãå®éã«ã¯ããŒããŠã§ã¢ã«ãããŸãã ãžã§ãã»ã¢ããŠãããæžããŠããããšã¯æ¬¡ã®ãšããã§ã
ãJavaScriptã®ããã©ãŒãã³ã¹ã¯1996幎ãã2006幎ã®éã«å€§å¹ ã«æ¹åãããããšãããããŸããã Web 2.0ãJavaScriptã®äžã«æ§ç¯ãããŠãããšããäºå®ã¯ãäž»ã«ã ãŒã¢ã®æ³åã«ãã決å®çãªããã©ãŒãã³ã¹ã®æ¹åã«ããå¯èœã«ãªããŸããã
JSã®ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãå šäœãšããŠããŒããŠã§ã¢ã«æ¥ç¶ããå ŽåãJSã®ããã©ãŒãã³ã¹ïŒããŒããŠã§ã¢ïŒ ãæ¹åããããšã¯ãå°æ¥ã®ããã°ã©ã ããã©ãŒãã³ã¹ãæ¹åããããã®åææ¡ä»¶ã§ã¯ãããŸãã ã ãã®ãããJSãå éãããšä¿¡ãããã®ã§ããã°ãä»æ¥ã§ã¯æ©åšã®å éãåå ã§ããå¯èœæ§ãæãé«ããªããŸããããã¯æŽå²çãªåŸåãããæããã§ãã
JITãV8ãNitro / SFXãTraceMonkey / IonMonkeyãChakraãªã©ã¯ã©ãã§ããïŒ ãŸãããªãªãŒã¹ã®æç¹ã§ã¯ããããã¯ããªããæãã»ã©éèŠã§ã¯ãããŸããããéèŠãªãã®ã§ããã V8ã¯2008幎9æã«ãªãªãŒã¹ãããŸããã åãé ãFirefox 3.0.3ã®ã³ããŒãæããŸããã
誀解ããªãã§ãã ããã9åã®ããã©ãŒãã³ã¹ã®åäžã¯ç¡èŠã§ããŸãããçµå±ã®ãšããããã®æ°ã¯ARMãšx86ã®å·®ã«ã»ãŒçããã§ãã ãããã£ãŠãChrome 8ãšChrome 26ã®ããã©ãŒãã³ã¹ã®éãã¯åãã¬ãã«ã®ãŸãŸã§ãã2008幎以éãç¹ã«éèŠãªããšã¯äœãèµ·ããŠããªãããã§ãã ä»ã®ãã©ãŠã¶ã¡ãŒã«ãŒã¯ãããè£ã£ãŠããŸãïŒäžéšã¯ããé«éã§ãäžéšã¯ããäœéã§ãïŒãããã以æ¥ããã»ããµã³ãŒãèªäœã®é床ãå®éã«åäžããã人ã¯ããŸããã
JavaScriptã®ããã©ãŒãã³ã¹ã¯åäžããŠããŸããïŒ
ãããç§ã®Macäžã®Chrome v8 ïŒ2010幎12æã«ãŸã åäœããæãå€ãããŒãžã§ã³ïŒã§ãããããã«v26ã§ãã
éããèŠããŸãããïŒ ããã¯åœŒå¥³ãããã«ããªãããã§ãã æè¿ãããã»ããµã«ãã£ãŠå¶éãããJavaScriptã§ã¯ãç¹ã«éèŠãªããšã¯èµ·ãããŸããã§ããã
Webã2010幎ãããé«éã«èŠããå Žåãããã¯ãããããããé«éãªã³ã³ãã¥ãŒã¿ãŒã§äœæ¥ããŠãããšããäºå®ã«ãããã®ã§ãããChromeã®æ¹åã¯ãããšã¯äœã®é¢ä¿ããããŸããã
ã泚æ äžéšã®è³¢æãªäººã ã¯ãæè¿ãSunSpiderã¯ããã©ãŒãã³ã¹ã®è¯ããã³ãããŒã¯ã§ã¯ãªããšææããŠããŸãïŒãããŠã圌ãã¯é¢é£ããæ°å€ãæäŸããããšãæåŠããŸããïŒã æå³ã®ããè°è«ãå§ããããã«ãå€ãããŒãžã§ã³ã®Chromeã§OctaneïŒGoogleã®ãã¹ãïŒãå®è¡ããŸããããæ¹åãèŠãããŸããã
ç§ã®æèŠã§ã¯ããã®æéã«åŸãããããã©ãŒãã³ã¹ã®æ¹åã¯ãJSãäºèŠå¯èœãªæéã®ã®ã£ãããåããŠãããšãã声æã®ååãªç¢ºèªã§ã¯ãããŸããã ãã ããJavaScriptã§äœããçºçããããã»ããµã«ãã£ãŠå¶éãããããããã®ã±ãŒã¹ãé倧è©äŸ¡ããããšãèªããªããã°ãªããŸããã ããã«ãããããããç§ã«ãšã£ãŠããããã®æ°åã¯å€§ããªä»®èª¬ãè£ä»ããŠããŸãããããã®æ¹åã¯ãäºèŠå¯èœãªå°æ¥ã«ãããŠãã€ãã£ãã³ãŒããšã®ã®ã£ãããåããããšãã§ããéã§ã¯ãããŸããã LLVMãšç«¶åããã«ã¯ããã¹ãŠã2ã9åæ¹åããå¿ èŠããããŸãã ãããã®æ¹åã¯è¯ãã§ããããã®çšåºŠã§ã¯ãããŸããã ã¡ã¢ã®çµããã
å®éã60幎åã«JavaScriptã§JITã䜿çšãããšããã¢ã€ãã¢ãçãŸããŸããã ãã®åŸã60幎ã®ç 究ãšããã¹ãŠã®ããã°ã©ãã³ã°èšèªã®æåéãæ°åã®å®è£ ãããããè¯ãã¢ã€ãã¢ã§ããããšã蚌æããããã«ç¶ããŸããã ãããè¡ã£ãã®ã§ã60幎åã«ã¢ã€ãã¢ã䜿ãæãããŸããã ãã¹ãŠã®å人ãã·ã§ãŒã¯çµãããŸããã ãããããä»åŸ60幎éã§å¥ã®è¯ãã¢ã€ãã¢ãæãã€ãããšãã§ããã§ãããã
ããããSafariã¯ä»¥åãããéãããã«èŠããŸããïŒ
ãããæ¬åœãªãããªãç§ãã¡ã¯JavaScriptã®ãã¹ãŠã®çŽ æŽãããããã©ãŒãã³ã¹ã®æ¹åã«ã€ããŠåžžã«èããŠããã®ã§ããïŒ ã»ãŒæ¯é±ã誰ããäœããã®ãã¹ãã§å·šå€§ãªå éã宣äŒããŠããŸãã ããã§ãAppleã¯JSBenchã§é©ç°çãª3.8åã®å éã䞻匵ããŠããŸãã
ã§ã¯ãSafari 7ã¯ä»ã®ãã©ãŠã¶ãŒããã3.8åé«éã§ããïŒ
ããããAppleã®å©äŸ¿æ§ã®ããã«ããã®ããŒãžã§ã³ã®Safariã«é¢ããæ å ±ã¯å ¬éãããŠããªããããSafariã®ããã©ãŒãã³ã¹ã«é¢ããç¬ç«ããããŒã¿ãå ¬éããããšã¯ã§ããŸããã ããã«ãããããããå ¬ã«å ¥æå¯èœãªæ å ±ã®ã¿ã«åºã¥ããŠããã®å£°æã«ã€ããŠããã€ãã®ç¹ãè¿°ã¹ãããŠãã ããã
ãŸããAppleãSunSpiderã®ãããªåŸæ¥ã®ãã¹ãã¬ããŒãããããªãŒãã³ãªJSBenchã¬ããŒãã§ããè¯ãçµæãå ±åãããšããäºå®ã«èå³ããããŸããã JavaScriptã®äœæè ã§ããBrendan Eichãªã©ãJSBenchã®èåŸã«ã¯èå³æ·±ã人ã ãããŸãããåŸæ¥ã®ãã¹ããšã¯ç°ãªããJSBenchã¯æŽæ°ãŸãã¯ãã®ãããªãã®ã決å®çãªåœ¹å²ãæããããã°ã©ã ãäœæããŸããã 代ããã«ãJSBenchã¯AmazonãFacebookãTwitterãæäŸãããã¹ãŠã®ãã®ãèªåçã«ååŸããããããã¹ãŠãããã¹ããäœæããŸãã ïŒççŽã«èšã£ãŠïŒã»ãšãã©ã®äººãFacebookã«ã¢ã¯ã»ã¹ããããã«äœ¿çšããWebãã©ãŠã¶ãŒãäœæããŠããå ŽåãFacebookå°çšã®ãã¹ããè¡ãããšãã©ãã»ã©äŸ¿å©ãæ³åã§ããŸãã äžæ¹ãã¹ãã¬ããã·ãŒãããã°ã©ã ãã²ãŒã ããŸãã¯ç»åãã£ã«ã¿ãªã³ã°ã¢ããªã±ãŒã·ã§ã³ãäœæããŠããå ŽåãæŽæ°æŒç®ãšmd5ããã·ã¥ã䜿çšããåŸæ¥ã®ãã¹ãã¯ãFacebookã®åæã³ãŒãã®é床ã芳å¯ãããããã¯ããã«æçšã§ãããšæãããŸãã
å¥ã®éèŠãªäºå®ã¯ãAppleã«ãããšãSunSpiderã®ããã©ãŒãã³ã¹ãåäžãããããšã¯ãä»ã®äœããåäžãããããšãå¿ ãããæå³ããªããšããããšã§ãã Appleã®æšå¥šãã¹ãã瀺ãåãããã¥ã¡ã³ãã§ãEichãšä»ã®äººã¯æ¬¡ã®ããã«æžããŠããŸãã
ããã®å³ã¯ãSunSpiderã«ãããšãFirefoxããŒãžã§ã³3.6ã®ããã©ãŒãã³ã¹ãããŒãžã§ã³1.5ã«æ¯ã¹ãŠ13ååäžããããšãæ確ã«ç€ºããŠããŸãã ããã«ãããããããAmazonã®æ¹åç¹ãèŠããšã3åã»ã©æ§ããã«èŠããŸãã ããã«èå³æ·±ãããšã«ãéå»2幎éã§Amazonã®æ¹åã¯æšªã°ãã«ãªããŸããã ã©ããããSun Spiderã§ããŸãæ©èœããããã€ãã®æé©åã¯ãAmazonã§ã¯å¹æããããŸããã
åãããã¥ã¡ã³ãã§ã JavaScript ã®äœæè ãšMozillaã®äž»èŠãªã¢ãŒããã¯ãã®1人ã¯ãéå»2幎éã«Amazonã®JavaScriptãµã€ãã®ããã©ãŒãã³ã¹ã«äœãèµ·ããããä¿¡ããããªãã»ã©ãšããµã€ãã£ã³ã°ãªããšã¯äœããªãã£ãããšãå ¬ç¶ãšèªããŠããŸãã ããã¯ãããŒã±ãã£ã³ã°æ åœè ã補åãäœå¹Žã匷å¶ããããšã瀺åããŠããŸãã
ãããã¯ãç¶ãããšã圌ãã¯æ¬è³ªçã«ãAmazonããã©ãŒãã³ã¹ãã¹ãã¯ãSunSpiderã®ããã©ãŒãã³ã¹ãã¹ããããAmazonã®ããã©ãŒãã³ã¹ãäºæž¬ããããã®åªããããŒã«ã§ãããšäž»åŒµããŸã[æããã«...]ããããã£ãŠãAmazonã«ã¢ã¯ã»ã¹ããWebãã©ãŠã¶ãŒã«é©ããŠããŸãã ãã ããããã ãã§ã¯åçåŠçã¢ããªã±ãŒã·ã§ã³ã®äœæã«ã¯åœ¹ç«ã¡ãŸããã
ãããããããã«ããããªãŒãã³ãªæ å ±ã«é Œã£ãŠãããã©ãŒãã³ã¹ã®3.8åã®åäžã«é¢ããAppleã®å£°æã¯ãå¿ ãããããªãã«ãšã£ãŠæçãªãã®ãæå³ãããšã¯èšããŸããã ãŸããAppleã®Chromeã«å¯Ÿããåªäœæ§ã«åè«ãããã¹ãããã£ãå Žåãããããå ¬éããããšã¯èš±å¯ãããªããšèšããŸãã
ãã®ã»ã¯ã·ã§ã³ã次ã®çµè«ã§ç· ãããããŸãããã誰ããèªåã®Webãã©ãŠã¶ãŒãé«éã§ããããšã瀺ãã°ã©ããæã£ãŠããå Žåãããã¯JSå šäœãé«éã«ãªã£ãŠãããšããæå³ã§ã¯ãããŸããã
èšäºããããŠæ°ã«å ¥ã£ãã®ãšåããããããªããèšäºã奜ãã«ãªãããšãæ¬åœã«é¡ã£ãŠããŸãã ãããããªããããã«ããªãã¯ç¿»èš³ã®ç¬¬äºã®éšåãèŠã€ããã§ãããã