ãªãã§ïŒ
ããªãããšãã質åã¯ã決å®ãäžãéã«æãéèŠã§ãã ç§ãã¡ã®å Žåãããã€ãã®çç±ããããŸããã
ãŸã第äžã«ã人ã ã çŸåšã®ãã³ãã¬ãŒããšã³ãžã³ã¯Cã«ãã£ãŠåŠçãããŸããã 圌ã®å€æŽã«é¢ãããã¹ãŠã®è³ªåã¯ããã«è§£æ±ºãããŸããã§ããã ãããŠæãéèŠãªããšã¯ããã³ãã¬ãŒããšã³ãžã³ãæžãã人ãããŸããããŸã£ããå¥ã®äººãããã䜿çšããŸããã
äžè¬ã«ãããã¯é »ç¹ã«è¡ããããã®ã§ãããç§ã®æèŠã§ã¯ãã¬ã€ã¢ãŠãèšèšè åãã®ããŒã«ãæžãããšã¯ããŸãè¯ãç¿æ £ã§ã¯ãããŸããã ããŒã«ãå¿ èŠã§ããããšã¯æããã§ãããã¬ã€ã¢ãŠãèšèšè ã®æ¥åžžã®ã¿ã¹ã¯ãéåžžã«ãªã¢ãŒãã§æ³åããŠãã人ã¯ããããã®ããŒã«ãç解ããŠããŸãã ããããããã©ãããããæ¡ä»¶ãšãµã€ã¯ã«ãæžãããŠãã¬ã€ã¢ãŠãã«ãã以äžäœãå¿ èŠãªãããã«ããããšããèšç»ã®æ±ºå®ããã°ãã°äžãããŸãã ãããããããã¯ã¬ã€ã¢ãŠãèšèšè èªèº«ãšåœŒãã®è³æ Œã®ããã§ãã
ããããMail.Ru Groupã«ã¯ãJSãç¥ã£ãŠãããèªåã§ããŒã«ãæžãããšãã§ããæèœãªäººã ã®ããŒã ããããæãéèŠãªã®ã¯ãããã䜿çšããããšã§ãã
第äºã«ãã¿ã¹ã¯ã ãããžã§ã¯ãMail@Mail.ruãåããŸãã ãµãŒããŒã§ã®ãã³ãã¬ãŒãäœæãæåŠããããšã¯ã§ããŸãããæåã®ãã°ã€ã³ã§é«éã«ããŒãããå¿ èŠããããŸãã ã¯ã©ã€ã¢ã³ãã®æšæºåãæåŠããããšã¯ã§ããŸããããŠãŒã¶ãŒã¯èªåã®è¡åã«å¯Ÿããé«ãåå¿çã確èªããå¿ èŠããããŸããã€ãŸããã¯ã©ã€ã¢ã³ãã®AJAXãšæšæºåãå¿ èŠã§ãã
åé¡ã¯æããã§ãããµãŒããŒãšã¯ã©ã€ã¢ã³ãã§å®å šã«ç°ãªããã³ãã¬ãŒãã®2ã€ã®ã»ããã ãããŠãæãäžå¿«ãªã®ã¯ã圌ããåãåé¡ã解決ããããšã§ãã ããžãã¯ã®è€è£œã¯ç§ãã¡ãç²ããããŸããã
v8ã¯JavaScriptã€ã³ã¿ãŒããªã¿ãŒã§ããã€ãŸãããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ã§æ©èœãã1ã€ã®ãã³ãã¬ãŒããååŸã§ããŸãã
第äžã«ãã¹ããŒãã v8ã®é床ã称è³ããå€ãã®èšäºãèªãã åŸãç§ãã¡ã¯ãããã®å ¬å¹³æ§ãæ€èšŒããå¿ èŠããããšå€æããŸããã ããããæåã«ãæ°ãããã³ãã¬ãŒããšã³ãžã³ãã©ã®ããã«èŠããããç解ããå¿ èŠããããŸããã
å¿ èŠãªãã®
å€æã®ããã®ãµãŒããŒæéã¯éåžžã«éãããŠãããããéåžžã«æ©èœçãªãã®ã«æ°ä»ãããšã¯ãããŸããã§ããã ãã ããv8ããã¬ã€ã€ãŒãè¿œå ããç¹ã§å¯äžã®éããæ®ããŠå€ãæ©èœãæ®ãã®ã¯å¥åŠãªèãã§ãã
ç§ã¯é·ãéXSLTãé »ç¹ã«äœ¿çšããŠããŸãïŒå€æã®æéããŒãžã§ã³ã§ã¯ãããŸããïŒããæ£ãã䜿çšãããšãè¯ãæ°å€ã瀺ããŸãïŒlibxsltã«ã€ããŠè©±ããŠããïŒã ãã ããXSLTã«ã¯ãã³ãã¬ãŒãã®åå®çŸ©ãšããéåžžã«åŒ·åãªãã³ãã¬ãŒãããŒã«ããããŸãã é¡äŒŒãããã®ãå®è£ ããããšã«ããŸããããã¯ããã«ç°¡åã§ãã
/head.xml ⊠<title><fest:get name=âtitleâ/></title> <fest:set name=âtitleâ>Mail.ru</fest:set> /mail.xml ⊠<fest:include src=âhead.xmlâ/> <fest:set name=âtitleâ> Mail.ru</fest:set>
v8ã䜿çšãããã³ãã¬ãŒããžã®JavaScriptã¢ã¯ã»ã¹ãèš±å¯ããªãã®ã¯å¥åŠã§ãã
<fest:script> var text = âmail.ruâ </fest:script> <fest:value>text</fest:value>
ãããŠãæšæºçãªæ¡ä»¶ãšãµã€ã¯ã«ã«å ããŠãããããªããšã«ã€ããŠã¯ãã£ãšããããã
XML
ãã³ãã¬ãŒããšã³ãžã³ã®æ§æãšããŠXMLã䜿çšããŸããã
IDEã®åºæ¬æ©èœã®ãµããŒãã 人æ°ã®ããIDEã®100ïŒ ãXMLãç¥ã£ãŠããŸãã ãã€ãããŒã·ã§ã³ãããã¯ã©ã€ããåºæ¬çãªãªãŒãã³ã³ããªãŒãã¯ç¡æã§ãã
IDEã¬ãã«ã®æ€èšŒã æå¹ãªHTMLã¯ãæå¹ãªãã³ãã¬ãŒãããååŸãããŸãã ç¹°ãè¿ããŸããããã¹ãŠã®IDEã¯xmlèªäœãæ€èšŒã§ããŸãã
ããã«äœ¿ããã¢ãžã¥ã©ãªãã£ïŒåå空éïŒã ãã³ãã¬ãŒããšã³ãžã³ã®åºæ¬æ©èœã¯ãéåžžã«è¿ éã«æ¡åŒµããå¿ èŠããããŸãã ããšãã°ãè€æ°ã®èšèªã§ãããžã§ã¯ããå®è¡ã§ããã¿ã°ãè¿œå ããŸãã åå空éã䜿çšãããšç°¡åã«ãªããŸãã
å¹ åºãåžè²©ã®ããŒã«ã é·å¹Žã«ããã£ãŠãXMLãåŠçããããã®å€ãã®ããŒã«ãèç©ãããŠããŸãããããšãã°ãXSLãŸãã¯SAXããŒãµãŒã®ã¯ã©ã¹å šäœã䜿çšããŠXMLãåŠçããããã®ã©ã€ãã©ãªãæ€èšŒçšã®XSDããã³DTDã¹ããŒã ãªã©ã§ãã
åŠçæ§é ã®æ§æãšçµæã®æ§é ã®äžèŽã èšãæããã°ãXMLããXMLãžã®äœæã¯äŸ¿å©ã§ããããã§ã¹ããã³ãã¬ãŒãã¯èªã¿ãããã§ãã ããã«ããã¹ãŠã®ããŒã¿ã·ãŒã«ãã®åé¡ã解決ãããŸããã
å®è£

ã«ãŠããŒã€ ç§èªèº«ãæè¿ãã®ãããªçšèªãããããšãç¥ããŸããã
ãã以åã¯ãã¿ã¹ã¯ãå®äºããããã®æãä¿¡é Œã§ããæ¹æ³ã¯ãããã°ã©ãã³ã°ãšãã¹ãã®ãã¢ã§ãããšç¢ºä¿¡ããŠããŸããã ãã€ãã®ããã«ãã¹ãã¯å ±ãããŸãããããã¢ãªã³ã°ããã°ã©ãã³ã°ã代æ¿æ段ãèŠã€ããŸããã
ãã®ã¿ã¹ã¯ãšå žåçãªã¿ã¹ã¯ãšã®éãã¯ããã³ãã¬ãŒããšããã®ãã³ãã¬ãŒããçæããçµæã®HTMLã§ãã KostyaïŒFrontend Mail DeveloperïŒãšç§ã¯ç¬èªââã®å®è£ ãæžãå§ããŸããã é±ã«äžåºŠãå€æé床ã®æž¬å®å€ãæ¯èŒããŸããã
ç§ãã¡ã¯2ã€ã®ç°ãªãã¢ãããŒããéžæããŸããã圌ã¯ãã³ãã¬ãŒããé¢æ°ã«ã³ã³ãã€ã«ããç§ã¯æ§é ã«ã³ã³ãã€ã«ããŸããã æãåçŽãªæ§é ã®äŸïŒ
01 [ 02 {action:"template"}, 03 "<html>...", 04 {action:"value"}, 05 "json.value" 06 ]
2è¡ç®ã¯ããã¿ãŒã³ã®å§ãŸãã瀺ããŠããŸãã 3ã€ç®ã¯ãåã«ãã©ãŠã¶ã«æž¡ãããšã§ãã 4ã€ç®ã¯ã5ã€ç®ã¯JavaScriptãšããŠå®è¡ããå¿ èŠããããå®è¡çµæã¯ãã©ãŠã¶ã«æž¡ãå¿ èŠãããããšã瀺ããŠããŸãã
01 [ 02 {action:"template"}, 03 "<html>....â, 04 {action:"if"}, 05 "json.value", 06 "<span>true</span>", 07 "<span>false</span>" 08 ]
ãªãã·ã§ã³ã¯ããå°ãè€éã§ãã 4è¡ç®ã¯ã5è¡ç®ãå®è¡ããå¿ èŠãããããšãæå³ããçµæãtrueãŸãã¯falseã®å Žåããããã6è¡ç®ãŸãã¯7è¡ç®ãæå®ããŸãã
ãã®æ©èœãåãããªãã·ã§ã³ã¯ãç¹ã«èª¬æããå¿ èŠã¯ãããŸããã
01 function template(json){ 02 var html = ""; 03 html += "<html>âŠ"; 04 html += json.value; 05 return html; 07 }
ä»åŸã¯ã圌ã®ããŒãžã§ã³ã®æ¹ãéãã£ããšæããŸãã ãã°ããã®éãç§ãã¡ã¯ã»ãŒã¹ã ãŒãºã«æ©ããŸããããæ§é ãåããããŒãžã§ã³ã¯ã¯ããã«æ©ã倩äºã«éããŸããã
ç§ããã®ã¢ãããŒããäžããããšãç解ããããã«ïŒç§ã®æåã®å®è£ ã¯ã¿ã¹ã¯ã200mså®äºããŸããã å¯èœãªãã¹ãŠãçµãåºããŠã2ã€ã®ããã°ã©ã ã®ãã¹ããçµã¿åããããšãã3ããªç§ã«ãªããŸããã
çŸåšã®å®è£ ãç°¡åã«èª¬æãããšããµã€ã¯ã«ããµã€ã¯ã«ã«ãæ¡ä»¶ã¹ããŒãã¡ã³ããæ¡ä»¶ã¹ããŒãã¡ã³ããªã©ã«å€æããŸãã
fest:foreach for(i = 0; i < l; i++) {} fest:if if(value) {} fest:choose if(value) {} else {}
ã³ã³ããã¹ãã®çµã蟌ã¿ã¯ãããŸããã ã¯ããããã¯å¶éã§ãããã³ã³ããã¹ããå¶éããããã®ãªãŒããŒãããã¯ãããŸãããæãéèŠãªããšã¯ãã³ã³ããã¹ããçµã蟌ããšããã«ãã°ããŒãã«ã³ã³ããã¹ããŸãã¯ã³ã³ããã¹ãããã¬ãã«ãäžããã¿ã¹ã¯ãããã«çºçããããšã§ãã
ãã³ãã¬ãŒããå³æ Œã¢ãŒãã§åäœããJSé¢æ°ã«å€æãããããšãéèŠã§ãã ããã¯ãã¡ã¢ãªãªãŒã¯ã«ã€ãªããã³ãŒããäœæããæ©äŒãã³ãŒããŒã«äžããŸããã
ããŒã¿ãè«ççã«åŠçããå¿ èŠãããå Žåã¯ãã€ã§ããJavaScriptã䜿çšã§ããŸãã
<fest:if test=â_javascript_â></fest:if> <fest:value>_javascript_</fest:value>
JavaScriptãå«ããã¹ãŠã®æ§æäœã¯ãtry catchã«ã©ãããããŸãã
JavaScriptã®å®è¡åŸã«HTMLåºåãåæãšãããã¹ãŠã®æ§æã¯ãããã©ã«ãã§HTMLãšã¹ã±ãŒãã«ãªããŸãã
<fest:value>json.name</fest:value>
try { html += __escape(json.name) } catch(e) {}
ãã³ãã¬ãŒããšã³ãžã³ã®éçºã¯ãæåãããªãŒãã³ãªåœ¢ã§è¡ãããŠããŸããã
https://github.com/mailru/fest
çµ±åãªãã·ã§ã³
äžæ¹ãv8ã¯JavaScriptã解éã§ããã©ã€ãã©ãªã«ãããŸããã ããèªäœã§ã¯ã圹ã«ç«ããªãããã§ã-ã·ã¹ãã ã«ã¢ã¯ã»ã¹ã§ããŸããã ããããäžæ¹ã§ãä»ã®èšèªã«ç°¡åã«ãã蟌ãŸããŸãã
Cããã³Perlããã°ã©ãã³ã°ã®çµéšããªããããäž¡æ¹ã®èšèªã§ãã¹ãã±ãŒã¹ãäœæããŸããã ããã«ãçŸæç¹ã§ã¯PythonããããããããŸãã
ãããŠãã¡ããããããã¿ã€ããšãã©ãŠã¶ãŒçšã®NodeJSã¯ãJavaScriptãã³ãã¬ãŒãããã®ãŸãŸäœ¿çšã§ããç°å¢ã§ãã
æŠéæ¡ä»¶ã«è¿ã
3msãåãåã£ãåŸããµãŒããŒåŽã®ããã°ã©ããŒã«è¡ããŸããã ãŠãŒã¶ãŒã®ã¡ãŒã«ã®ãªã¹ããéä¿¡ãããªã¯ãšã¹ãã«ã©ãã ãã®æéãããããå°ãããããšãã圌ãã¯èšã£ãïŒ4ms以äžã å€æã«ã¯ãã§ã«3msãããŸããã®ã§ãè©ŠããŠã¿ãŸããã
ç§ãã¡ãæã£ãŠããæåã®ãªã¹ãã¯ãCã§æžãããç¬èªã®httpãµãŒããŒã«ãã£ãŠäžããããŸãã ããŒã¿ååŸ-ããã»ããµãšç«¶åããªãæäœãªã®ã§ã枬å®ãããŸããã§ããã å€æçšã®ããŒã¿ã®æºåãšå€æèªäœã¯åæ¢ããŸããã
æŽå²çãªçç±ãããhttpãµãŒããŒã¯ããŒã¿ããã©ããããã·ã¥ã«ä¿åããŸãã
msg_length = 5 msg_1_title = âletterâ msg_1_Unread = 1
JavaScriptã«ã€ããŠè©±ããŠããã®ã§ãæåã«æãæµ®ãã¶ã®ã¯JSONã§ã
msg = [ {title: âletterâ, Unread: true} ]
ãã³ãã¬ãŒããv8ã«å€æãããšãã«JSONã䜿çšããŠJavaScriptãæäœãããšããã©ããããã·ã¥ã®è¡ãã¡ã¢ãªã«å ¥ããŠçµæãåºãå§ããŸããã
ç§ãã¡ã¯å€ãã®ãªãã·ã§ã³ãè©ŠããŸããã ãªããžã§ã¯ãã転éããæååã転éããŠJavaScriptã§è§£æããæååã転éããŠJSON.parseã«æž¡ããŸãã
å¥åŠãªããšã«ããã©ããããã·ã¥ãJSONã«äžèŽããæååã«å€æããv8ã«æååãäžããã®ãæéã§ããããšãå€æããŸãã
âtemplate([ {title: \âletter\â, Unread: true} ])â
ãããããã¹ãŠã«ããããããã2ããªç§ã®å€æã§6ããªç§ã«ãªããŸããã 誰ããgiveããæºåãã§ããŠããŸããã ããã§ãããœãŒã¹ããŒã¿ããã©ããããã·ã¥ãå«ãè¡ãååŸããåãã³ã³ãã€ã«æžã¿ãã³ãã¬ãŒãã䜿çšããŠãNodeJSã§å¿ èŠãªHTMLãååŸããããšã«ããŸããã
4ããªç§ã ãã®çªå·ã§ã·ã·ãã³ãã«æ¥ããšãããã¯ãŒã«ã§ãããNodeJSã«ã¯æžããªãœãŒã¹ããããŸããããšãããã¬ãŒãºãæ£çŽã«æåŸ ããŠããŸãããã代ããã«ãNodeJSã4msã§ã§ãããªããç§ãã¡ãã§ããŸãïŒã

ãã®ç¬éã«æ°ä»ããã®ã¯ããããæ¬çªç°å¢ã«æã¡èŸŒãããšã§ãã 第äºã®é¢šããããŸããïŒ
解決çã¯ç°¡åã§ããã ããŒã¿ã®æºåã«æéã®67ïŒ ã倱ããååãšããŠæ¢ã«ããŒã¿ãæã£ãŠããã®ã§ãããŒã¿ã®æºåãæšãŠãå¿ èŠããããŸãã
__getïŒ 'key'ïŒé¢æ°ãv8ã«æå ¥ããŸããã ãããã£ãŠãv8ããã¯ãhttpãµãŒããŒã®ããã·ã¥ããçŽæ¥ããŒã¿ãååŸããŸããã ç®çã®åœ¢åŒãžã®ããŒã¿å€æã¯ãããŸããã ãã®æååããv8å ã®ãªããžã§ã¯ããžã®å€æã¯ãããŸããã 3ããªç§ã§åºçºãã1ããªç§ã®äºçŽããããŸããã

ã»ãŒçç£
ã ããããã¹ãŠãçŽ æŽãããèŠããŸãããç§ãã¡ãçç£ã«è¿ã¥ããŠããŸããã§ããã æãããã¿ããŠã¿ãŠãã ããã
å¥ã®ãµãŒããŒãçšæããv8ã§åäœããhttpãµãŒããŒã®ããŒãžã§ã³ãäžããŠãå®éã®ãªã¯ãšã¹ããè€è£œããŸãã 2.2 GHz Xeonã®ã³ã¢ã30æéæŸçœ®ããŸãã
10,000,000件以äžã®ããã å¹³åå€ææé1.6ms 992 422 2ã5ããªç§ã®10ïŒ 208 464 5ã10ããªç§ã®2ïŒ 10ããªç§ä»¥äž39 649 0.4ïŒ
2msãè¶ ããã®ã¯ããã12ïŒ ã§ããã v8ã¯ã¡ã¢ãªããå®å®ããŠåäœããŸãã
çç£
ç§ã¯æåŸã®æ°åã§å¯ãã¯ãã«ã«ãã£ã¬ã¯ã¿ãŒã«æ¥ãŠãv8ã¯çç£ã®æºåãã§ããŠããã®ã§ãå¥ã®å°ããªãããžã§ã¯ããäœæããå¿ èŠãããã倱æããå Žåã«ã¯å¿ããŠããŸãå¯èœæ§ããããŸãã ããã«å¿ããŠã圌ã¯ãæ°åã¯è¯å¥œã§ã倱æãã²ã©ããªãå¥ã®ãããžã§ã¯ãã¯æ£ããã§ãããæ¬åœã«v8ãç«ã¡äžãããã§ããïŒã Mail.RuããŒã ããŒãžããéå§ããŸãã 質åã¯æ£ããæèµ·ãããŠããŸã-ç§ãã¡ã¯ããžãã¹ãããŠããããŸãã¯å芳è ã楜ããã§ããŸãã
ãã§ã¹ãã®ã¡ã€ã³ããŒãžã®ã¬ã€ã¢ãŠãã«ã¯3æ¥ããããŸããã ãã©ã³ãµãŒãã1ã€ã®ãµãŒããŒã®é»æºãåããããŒãžã§ã³ãv8ã§ã¢ããããŒããããªã¯ãšã¹ããè€è£œããŸããã ãã¹ãŠã®èšç®ã¯ãåäžã®ããŒã¢ã³/ã«ãŒãã«ã®ã³ã³ããã¹ãã§è¡ãããŸãã
ããã«ãè¯ãçµæ«ã§éåžžã«æçãªè©±ãããŸãã
ã°ã©ãã®è¡šç€ºå 容ãåžžã«è©³çŽ°ã«ç¢ºèªããŠãã ããã ãã¹ããµãŒããŒã«ååã®è² è·ããããŸãã CPUæ¶è²»ã¯éåžžã®3åã§ããã ããã¯ãçŸåšã®ãã³ãã¬ãŒããšã³ãžã³ãšæ¯èŒããŠããªãœãŒã¹ã®6åã®æ倱ãšããé害ã®ããã«èŠããŸããã
圌ãã¯èŠå§ããŸããã ããã§ã¯ãã¡ã€ã³ã¢ãŒããã¯ãã£ã«ã€ããŠå°ã説æããŸãã ããŸããŸãªãããžã§ã¯ãããæ å ±ãåéããŸãã å éšéçºãåéããRBãšåŒã³ãŸãã ã¡ã€ã³ãè¿ãããã«çæããã165kbã®ãã¡ã100kbãRBãåéããŸãã ãããŠã次ã®ããšãèµ·ãããŸãïŒRBã¯HTMLããŒã¹ãv8ã®httpãµãŒããŒãéããŠéä¿¡ããv8ã¯ããããç¬èªã®æååã§é£çµããçµæã¯ããããã¹ãŠãhttpãµãŒããŒã«è¿ããŸãã
äºéããŒã¿è»¢éããããŸãã æé©åãããŸããã v8ã§ã¯ãRBããã®ããŒã¿ãå«ã1ã€ã®å€§ããªè¡ãæ§ç¯ãã代ããã«ãããŒã¿ãçŽæ¥httpãµãŒããŒã«éä¿¡ããŸãã
__push_string('foo'); __push_rb(id); __push_string('bar');
ããã«ãv8ã«ã¯æååã®é£çµããªãããµãŒããŒããv8ãžããŸãã¯ãã®éãžã®ããã«RB転éã¯ãããŸãããæãéèŠãªããšã¯ãããŒã¿è»¢éã¯utf-8ããutf-16ãžããŸãã¯ãã®éãžã®å€æã§ãã V8ã¯ãã¹ãŠãutf-16ã«ä¿åããŸãã
å©çãããããªãœãŒã¹ã¯3ã€ã§ã¯ãªãéåžžã®2åã«æ¶è²»ãããŸããã ã€ãŸã ç§ãã¡ã¯ãŸã 4åè² ããŠããŸãããããã¹ãŠãçµã£ãŠããŸã£ãããã«èŠããŸããã
ãããŠä»ãæçãªéšåã èå³ãåŒãããã«ããã¹ãããè² è·ã«ããã·ã³äžã®æªéã®æ°ãšãã·ã³ã®æ°ã®2ãæããŸããã 4å4åäžä»¶ã®ããããåããŸããã ããã«ã1æ¥ããã1å1,000äžä»¶ã®ãããããããŸãã ææ§ãªçããå¿ã³èŸŒãã ã
ãã°ãèŠãŠã¿ãŸãããã è² è·ã®ãããªã¯ãšã¹ãããšã«ãçµ±èšã®ãã°ã«ã¬ããŒããå«ã3ã€ã®ãªã¯ãšã¹ããåãåã£ãããšãå€æããŸããïŒ 1ã€ã®httpãµãŒããŒã®å®éã®è² è·ã¯ããã¹ââã察象ã®4åã§ãã
ç¿æãv8ã®ã¡ã€ã³ããŒãžã®ããŒãžã§ã³ãå ¬éããŸããã
ä»æ¥ã®ããŒã¿ïŒ
v8ãçæããHTMLã®ãµã€ãºã¯65kbã§ãã
æéããªã¯ãšã¹ã1msãããv8ã®äœæ¥ã
å¹³åããŠãv8ã§ã¯ã³ã³ããã¹ãããšã«40MBãå¿ èŠã§ãã
ããã€ãã®èª¬æ
v8ã«ã€ããŠèããŠãããã¹ãŠã®äººããIgor Sysoevã«ããèšäºãèŠã€ããŸããsysoev.ru/prog/v8.html
ãã®ã¿ã¹ã¯ã«åãçµãã§ããéãã£ãšãv8éçºè Vyacheslav EgorovïŒhttp://mrale.phïŒãç§ãã¡ã倧ãã«å©ããŠãããŸããã
èšæ¶ã®ææã¯æ£åœåãããŸãã æ£ããæäœãéèŠãªå ŽåïŒã¡ã¢ãªäžè¶³ãéåžžã®ç¶æ³ã§ããå ŽåïŒãåé¡ãçºçããŸãã å²ãåœãŠãšã©ãŒãæ£ãããã£ããã§ããŸãããããã«ã€ããŠã§ããããšã¯ãæ£ããåèµ·åããããšã ãã§ãã
ããããæ£çŽã«èšããšãéèŠãªè£œåã¯1ã€ã ãã§ãã ã¡ã€ã³ããŒãžã«ã€ããŠã¯ã倧éã®ã¡ã¢ãªããããéåžžã«ããç£èŠããŠããŸãã
v8ãã©ã³ã¯ãæµããŠããããšãããããŸããã Vyacheslavã¯ãããåçŸã§ããŸããã§ããããéçºè ããªãŒã¯ãçºèŠããã®ã«åœ¹ç«ã€ãã¹ãã±ãŒã¹ããŸãšãããšæããŸãã ããŒãžã§ã³3.6ã¯ã¡ã¢ãªããæ£åžžã«åäœããŸãã
䟿å©ãªãªã³ã¯
-github.com/mailru/festãã³ãã¬ãŒããšã³ãžã³
-code.google.com/p/v8 v8 API
-Igor Sysoevã«ããsysoev.ru/prog/v8.htmlèšäº
Andrey Suminãéçºéšé·ãã¯ã©ã€ã¢ã³ãããŒãMail.ru