ããã«ã¡ã¯
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ã®ããã©ãŒãã³ã¹ã«é¢ããç¬ç«ããããŒã¿ãå
¬éããããšã¯ã§ããŸããã ããã«ãããããããå
‹nj
¥æå¯èœãªæ
å ±ã®ã¿ã«åºã¥ããŠããã®å£°æã«ã€ããŠããã€ãã®ç¹ãè¿°ã¹ãããŠãã ããã
ãŸãã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å
šäœãé«éã«ãªã£ãŠãããšããæå³ã§ã¯ãããŸããã
èšäºããããŠæ°ã«å
¥ã£ãã®ãšåããããããªããèšäºã奜ãã«ãªãããšãæ¬åœã«é¡ã£ãŠããŸãã ãããããªããããã«ããªãã¯ç¿»èš³ã®ç¬¬äºã®éšåãèŠã€ããã§ãããã