Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
10¸ö¼¼ÇÉ£¬ÈÃÄãÔÚ 2017 Äê³ÉΪ¸üºÃµÄNode¿ª·¢Õß
 
À´Ô´£ºÆëÎèÖÜ¿¯ ·¢²¼ÓÚ 2017-2-17
  2405  次浏览      27
 

ÔÚ Web ¿ª·¢ÖУ¬Ëæ×ÅÐèÇóµÄÔö¼ÓÓë´úÂë¿âµÄÀ©ÕÅ£¬ÎÒÃÇ×îÖÕ·¢²¼µÄ Web Ò³ÃæÒ²Öð½¥ÅòÕÍ¡£²»¹ýÕâÖÖÅòÕÍÔ¶²»Ö¹Òâζ×ÅÕ¼¾Ý¸ü¶àµÄ´«Êä´ø¿í£¬Æä»¹Òâζ×ÅÓû§ä¯ÀÀÍøÒ³Ê±¿ÉÄܸü²î¾¢µÄÐÔÄÜÌåÑé¡£ä¯ÀÀÆ÷ÔÚÏÂÔØÍêij¸öÒ³ÃæÒÀÀµµÄ½Å±¾Ö®ºó£¬Æä»¹ÐèÒª¾­¹ýÓï·¨·ÖÎö¡¢½âÊÍÓëÔËÐÐÕâЩ²½Öè¡£¶ø±¾ÎÄÔò»áÉîÈë·ÖÎöä¯ÀÀÆ÷¶ÔÓÚ JavaScript µÄÕâЩ´¦ÀíÁ÷³Ì£¬ÍÚ¾ò³öÄÇЩӰÏìÄãÓ¦ÓÃÆô¶¯Ê±¼äµÄ×ï¿ý»öÊ×£¬²¢ÇÒ¸ù¾ÝÎÒ¸öÈ˵ľ­ÑéÌá³öÏà¶ÔÓ¦µÄ½â¾ö·½°¸¡£»Ø¹Ë¹ýÈ¥£¬ÎÒÃÇ»¹Ã»ÓÐרÃŵؿ¼ÂǹýÈçºÎÈ¥ÓÅ»¯ JavaScript ½âÎö/±àÒëÕâЩ²½Öè;ÎÒÃÇÔ¤ÏëÖеÄÊǽâÎöÆ÷ÔÚ·¢ÏÖ<script>±êÇ©ºó»á˲ʱÍê³É½âÎö²Ù×÷£¬²»¹ýÕâºÜÃ÷ÏÔÊdzÕÈË˵ÃΡ£ÏÂͼÊǶÔÓÚ V8 ÒýÇæ¹¤×÷Ô­ÀíµÄ¸ÅÊö£º

ÏÂÃæÎÒÃÇÉîÈëÆäÖеĹؼü²½Öè½øÐзÖÎö¡£

µ½µ×ÊÇʲôÍÏÂýÁËÎÒÃÇÓ¦ÓÃµÄÆô¶¯Ê±¼ä?

ÔÚÆô¶¯½×¶Î£¬Óï·¨·ÖÎö£¬±àÒëÓë½Å±¾Ö´ÐÐÕ¼¾ÝÁË JavaScript ÒýÇæÔËÐеľø´ó²¿·Öʱ¼ä¡£»»ÑÔÖ®£¬ÕâЩ¹ý³ÌÔì³ÉµÄÑÓ³Ù»áÕæÊµµØ·´Ó¦µ½Óû§¿É½»»¥Ê±ÑÓÉÏ;Æ©ÈçÓû§ÒѾ­¿´µ½ÁËij¸ö°´Å¥£¬µ«ÊÇÒªºÃ¼¸ÃëÖ®ºó²ÅÄÜÕæÕýµØÈ¥µã»÷²Ù×÷£¬ÕâÒ»µã»á´ó´óÓ°ÏìÓû§ÌåÑé¡£

ÉÏͼÊÇÎÒÃÇʹÓà Chrome Canary ÄÚÖÃµÄ V8 RunTime Call Stats ¶ÔÓÚij¸öÍøÕ¾µÄ·ÖÎö½á¹û;ÐèҪעÒâµÄÊÇ×ÀÃæä¯ÀÀÆ÷ÖÐÓï·¨½âÎöÓë±àÒëÕ¼ÓõÄʱ¼ä»¹ÊÇÂù³¤µÄ£¬¶øÔÚÒÆ¶¯¶ËÖÐÕ¼ÓõÄʱ¼äÔò¸ü³¤¡£Êµ¼ÊÉÏ£¬¶ÔÓÚ Facebook, Wikipedia, Reddit ÕâЩ´óÐÍÍøÕ¾ÖÐÓï·¨½âÎöÓë±àÒëËùÕ¼µÄʱ¼äÒ²²»ÈݺöÊÓ£º

ÉÏͼÖеķÛÉ«ÇøÓò±íʾ»¨·ÑÔÚ V8 Óë Blink's C++ ÖеÄʱ¼ä£¬¶ø³ÈÉ«ºÍ»ÆÉ«·Ö±ð±íʾÓï·¨½âÎöÓë±àÒëµÄʱ¼äÕ¼±È¡£Facebook µÄ Sebastian Markbage Óë Google µÄ Rob Wormald Ò²¶¼ÔÚ Twitter ·¢Îıíʾ¹ý JavaScript µÄÓï·¨½âÎöʱ¼ä¹ý³¤ÒѾ­³ÉΪÁ˲»¿ÉºöÊÓµÄÎÊÌ⣬ºóÕß»¹±íʾÕâÒ²ÊÇ Angular Æô¶¯Ê±Ö÷ÒªµÄÏûºÄÖ®Ò»¡£

Ëæ×ÅÒÆ¶¯¶ËÀ˳±µÄÓ¿À´£¬ÎÒÃDz»µÃ²»Ãæ¶ÔÒ»¸ö²Ð¿áµÄÊÂʵ£ºÒƶ¯¶Ë¶ÔÓÚÏàͬ°üÌåµÄ½âÎöÓë±àÒë¹ý³ÌÒª»¨·ÑÏ൱ÓÚ×ÀÃæä¯ÀÀÆ÷2~5±¶µÄʱ¼ä¡£µ±È»£¬¶ÔÓÚ¸ßÅäµÄ iPhone »òÕß Pixel ÕâÑùµÄÊÖ»úÏà½ÏÓÚ Moto G4 ÕâÑùµÄÖÐÅäÊÖ»ú±íÏÖ»áºÃºÜ¶à;ÕâÒ»µãÌáÐÑÎÒÃÇÔÚ²âÊÔµÄʱºò²»ÄܽöÓÃÉí±ßÄÇЩ¸ßÅäµÄÊÖ»ú£¬¶øÓ¦¸ÃÖиߵÍÅ伿¹Ë£º

ÉÏͼÊDz¿·Ö×ÀÃæä¯ÀÀÆ÷ÓëÒÆ¶¯¶Ëä¯ÀÀÆ÷¶ÔÓÚ 1MB µÄ JavaScript °üÌå½øÐнâÎöµÄʱ¼ä¶Ô±È£¬ÏÔ¶øÒ×¼ûµÄ¿ÉÒÔ·¢ÏÖ²»Í¬ÅäÖõÄÒÆ¶¯¶ËÊÖ»úÖ®¼äµÄ¾Þ´ó²îÒì¡£µ±ÎÒÃÇÓ¦ÓðüÌåÒѾ­·Ç³£¾Þ´óµÄʱºò£¬Ê¹ÓÃһЩÏÖ´úµÄ´ò°ü¼¼ÇÉ£¬Æ©Èç´úÂë·Ö¸î£¬TreeShaking£¬Service Workder »º´æµÈµÈ»á¶ÔÆô¶¯Ê±¼äÓкܴóµÄÓ°Ïì¡£ÁíÒ»¸ö½Ç¶ÈÀ´¿´£¬¼´Ê¹ÊÇСģ¿é£¬Äã´úÂëдµÄºÜÔã»òÕßʹÓÃÁ˺ÜÔãµÄÒÀÀµ¿â¶¼»áµ¼ÖÂÄãµÄÖ÷Ï̻߳¨·Ñ´óÁ¿µÄʱ¼äÔÚ±àÒë»òÕßÈßÓàµÄº¯Êýµ÷ÓÃÖС£ÎÒÃDZØÐëÒªÇåÐѵØÈÏʶµ½È«ÃæÆÀ²âÒÔÍÚ¾ò³öÕæÕýÐÔÄÜÆ¿¾±µÄÖØÒªÐÔ¡£

JavaScript Óï·¨½âÎöÓë±àÒëÊÇ·ñ³ÉΪÁ˴󲿷ÖÍøÕ¾µÄÆ¿¾±?

ÎÒÔø²»Ö¹Ò»´ÎÌýµ½ÓÐÈË˵£¬ÎÒÓÖ²»ÊÇ Facebook£¬Äã˵µÄ JavaScript Óï·¨½âÎöÓë±àÒëµ½

µ×»á¶ÔÆäËûÍøÕ¾Ôì³ÉʲôÑùµÄÓ°ÏìÄØ?¶ÔÓÚÕâ¸öÎÊÌâÎÒÒ²ºÜºÃÆæ£¬ÓÚÊÇÎÒ»¨·ÑÁËÁ½¸öÔµÄʱ¼ä¶ÔÓÚ³¬¹ý 6000 ¸öÍøÕ¾½øÐзÖÎö;ÕâÐ©ÍøÕ¾ÄÒÀ¨ÁË React£¬Angular£¬Ember£¬Vue ÕâЩÁ÷ÐеĿò¼Ü»òÕ߿⡣´ó²¿·ÖµÄ²âÊÔÊÇ»ùÓÚ WebPageTest ½øÐеģ¬Òò´ËÄã¿ÉÒԺܷ½±ãµØÖØÏÖÕâЩ²âÊÔ½á¹û¡£¹âÏ˽ÓÈëµÄ×ÀÃæä¯ÀÀÆ÷´ó¸ÅÐèÒª 8 ÃëµÄʱ¼ä²ÅÄÜÔÊÐíÓû§½»»¥£¬¶ø 3G »·¾³Ï嵀 Moto G4 ´ó¸ÅÐèÒª 16 Ãë ²ÅÄÜÔÊÐíÓû§½»»¥¡£

´ó²¿·ÖÓ¦ÓÃÔÚ×ÀÃæä¯ÀÀÆ÷ÖлáºÄ·ÑÔ¼ 4 ÃëµÄʱ¼ä½øÐÐ JavaScript Æô¶¯½×¶Î(Óï·¨½âÎö¡¢±àÒë¡¢Ö´ÐÐ)£º

¶øÔÚÒÆ¶¯¶Ëä¯ÀÀÆ÷ÖУ¬´ó¸ÅÒª»¨·Ñ¶îÍâ 36% µÄʱ¼äÀ´½øÐÐÓï·¨½âÎö£º

ÁíÍ⣬ͳ¼ÆÏÔʾ²¢²»ÊÇËùÓеÄÍøÕ¾¶¼Ë¦¸øÓû§Ò»¸öÅÓ´óµÄ JS °üÌ壬Óû§ÏÂÔØµÄ¾­¹ý Gzip ѹËõµÄƽ¾ù°üÌå´óСÊÇ 410KB£¬ÕâÒ»µãÓë HTTPArchive ֮ǰ·¢²¼µÄ 420KB µÄÊý¾Ý»ù±¾Ò»Ö¡£²»¹ý×î²î¾¢µÄÍøÕ¾ÔòÊÇÖ±½Ó˦ÁË 10MB µÄ½Å±¾¸øÓû§£¬¼òÖ±¿ÉÅ¡£

ͨ¹ýÉÏÃæµÄͳ¼ÆÎÒÃÇ¿ÉÒÔ·¢ÏÖ£¬°üÌåÌå»ý¹ÌÈ»ÖØÒª£¬µ«ÊÇÆä²¢·ÇΨһÒòËØ£¬Óï·¨½âÎöÓë±àÒëµÄºÄʱҲ²»Ò»¶¨Ëæ×ŰüÌåÌå»ýµÄÔö³¤¶øÏßÐÔÔö³¤¡£×ÜÌå¶øÑÔСµÄ JavaScript °üÌåÊÇ»á¼ÓÔØµØ¸ü¿ì(ºöÂÔä¯ÀÀÆ÷¡¢É豸ÓëÍøÂçÁ¬½ÓµÄ²îÒì)£¬µ«ÊÇͬÑù 200KB µÄ´óС£¬²»Í¬¿ª·¢ÕߵİüÌåÔÚÓï·¨½âÎö¡¢±àÒëÉϵÄʱ¼äÈ´ÊÇÌì²îµØ±ð£¬²»¿ÉͬÈÕ¶øÓï¡£

ÏÖ´ú JavaScript Óï·¨½âÎö & ±àÒëÐÔÄÜÆÀ²â

Chrome DevTools

´ò¿ª Timeline( Performance panel ) > Bottom-Up/Call Tree/Event Log ¾Í»áÏÔʾ³öµ±Ç°ÍøÕ¾ÔÚÓï·¨½âÎö/±àÒëÉϵÄʱ¼äÕ¼±È¡£Èç¹ûÄãÏ£ÍûµÃµ½¸üÍêÕûµÄÐÅÏ¢£¬ÄÇô¿ÉÒÔ´ò¿ª V8 µÄ Runtime Call Stats¡£ÔÚ Canary ÖУ¬ÆäλÓÚ Timeline µÄ Experims > V8 Runtime Call Stats Ï¡£

Chrome Tracing

´ò¿ª about:tracing Ò³Ãæ£¬Chrome ÌṩµÄµ×²ãµÄ×·×Ù¹¤¾ßÔÊÐíÎÒÃÇʹÓÃdisabled-by-default-v8.runtime_statsÀ´Éî¶ÈÁ˽â V8 µÄʱ¼äÏûºÄÇé¿ö¡£V8 Ò²ÌṩÁËÏêϸµÄÖ¸ÄÏÀ´½éÉÜÈçºÎʹÓÃÕâ¸ö¹¦ÄÜ¡£

WebPageTest

WebPageTest ÖÐ Processing Breakdown Ò³ÃæÔÚÎÒÃÇÆôÓà Chrome > Capture Dev Tools Timeline ʱ»á×Ô¶¯¼Ç¼ V8 ±àÒë¡¢EvaluateScript ÒÔ¼° FunctionCall µÄʱ¼ä¡£ÎÒÃÇͬÑù¿ÉÒÔͨ¹ýÖ¸Ã÷disabled-by-default-v8.runtime_statsµÄ·½Ê½À´ÆôÓà Runtime Call Stats¡£

¸ü¶àʹÓÃ˵Ã÷²Î¿¼ÎÒµÄgistµã»÷Ô¤ÀÀ¡£

User Timing

ÎÒÃÇ»¹¿ÉÒÔʹÓà Nolan Lawson ÍÆ¼öµÄUser Timing APIÀ´ÆÀ¹ÀÓï·¨½âÎöµÄʱ¼ä¡£²»¹ýÕâÖÖ·½Ê½¿ÉÄÜ»áÊÜ V8 Ô¤½âÎö¹ý³ÌµÄÓ°Ï죬ÎÒÃÇ¿ÉÒÔ½è¼ø Nolan ÔÚ optimize-js ÆÀ²âÖеķ½Ê½£¬Ôڽű¾µÄβ²¿Ìí¼ÓËæ»ú×Ö·û´®À´½â¾öÕâ¸öÎÊÌâ¡£ÎÒ»ùÓÚ Google Analytics ʹÓÃÏàËÆµÄ·½Ê½À´ÆÀ¹ÀÕæÊµÓû§ÓëÉ豸·ÃÎÊÍøÕ¾Ê±ºòµÄ½âÎöʱ¼ä¡£

DeviceTiming

Etsy µÄ DeviceTiming ¹¤¾ßÄܹ»Ä£ÄâijЩÊÜÏÞ»·¾³À´ÆÀ¹ÀÒ³ÃæµÄÓï·¨½âÎöÓëÖ´ÐÐʱ¼ä¡£Æä½«±¾µØ½Å±¾°ü¹üÔÚÁËij¸öÒÇ±í¹¤¾ß´úÂëÄÚ´Ó¶øÊ¹ÎÒÃǵÄÒ³ÃæÄܹ»Ä£Äâ´Ó²»Í¬µÄÉ豸ÖзÃÎÊ¡£¿ÉÒÔÔĶÁ Daniel Espeset µÄBenchmarking JS Parsing and Execution on Mobile Devices Ò»ÎÄÀ´Á˽â¸üÏêϸµÄʹÓ÷½Ê½¡£

ÎÒÃÇ¿ÉÒÔ×öЩʲôÒÔ½µµÍ JavaScript µÄ½âÎöʱ¼ä?

¼õÉÙ JavaScript °üÌåÌå»ý¡£ÎÒÃÇÔÚÉÏÎÄÖÐÒ²Ìá¼°£¬¸üСµÄ°üÌåÍùÍùÒâζןüÉٵĽâÎö¹¤×÷Á¿£¬Ò²¾ÍÄܽµµÍä¯ÀÀÆ÷ÔÚ½âÎöÓë±àÒë½×¶ÎµÄʱ¼äÏûºÄ¡£

ʹÓôúÂë·Ö¸î¹¤¾ßÀ´°´Ðè´«µÝ´úÂëÓëÀÁ¼ÓÔØÊ£ÓàÄ£¿é¡£Õâ¿ÉÄÜÊÇ×î¼ÑµÄ·½Ê½ÁË£¬ÀàËÆÓÚPRPLÕâÑùµÄģʽ¹ÄÀø»ùÓÚ·ÓɵķÖ×飬Ŀǰ±» Flipkart, Housing.com Óë Twitter ¹ã·ºÊ¹Óá£

Script streaming: ¹ýÈ¥ V8 ¹ÄÀø¿ª·¢ÕßʹÓÃasync/deferÀ´»ùÓÚscript streamingʵÏÖ 10-20% µÄÐÔÄÜÌáÉý¡£Õâ¸ö¼¼Êõ»áÔÊÐí HTML ½âÎöÆ÷½«ÏàÓ¦µÄ½Å±¾¼ÓÔØÈÎÎñ·ÖÅ䏸׍ÃÅµÄ script streaming Ị̈߳¬´Ó¶ø±ÜÃâ×èÈûÎĵµ½âÎö¡£V8 ÍÆ¼ö¾¡Ôç¼ÓÔØ½Ï´óµÄÄ£¿é£¬±Ï¾¹ÎÒÃÇÖ»ÓÐÒ»¸ö streamer Ï̡߳£

ÆÀ¹ÀÎÒÃÇÒÀÀµµÄ½âÎöÏûºÄ¡£ÎÒÃÇÓ¦¸Ã¾¡¿ÉÄܵØÑ¡Ôñ¾ßÓÐÏàͬ¹¦Äܵ«ÊǼÓÔØµØ¸ü¿ìµÄÒÀÀµ£¬Æ©ÈçʹÓà Preact »òÕß Inferno À´´úÌæ React£¬¶þÕßÏà½ÏÓÚ React Ìå»ý¸üС¾ßÓиüÉÙµÄÓï·¨½âÎöÓë±àÒëʱ¼ä¡£Paul Lewis ÔÚ×î½üµÄһƪÎÄÕÂÖÐÒ²ÌÖÂÛÁË¿ò¼ÜÆô¶¯µÄ´ú¼Û£¬Óë Sebastian Markbage µÄ˵·¨²»Ä±¶øºÏ£º×îºÃµØÆÀ²âij¸ö¿ò¼ÜÆô¶¯ÏûºÄµÄ·½Ê½¾ÍÊÇÏÈäÖȾһ¸ö½çÃæ£¬È»ºóɾ³ý£¬×îºó½øÐÐÖØÐÂäÖȾ¡£µÚÒ»´ÎäÖȾµÄ¹ý³Ì»á°üº¬ÁË·ÖÎöÓë±àÒ룬ͨ¹ý¶Ô±È¾ÍÄÜ·¢Ïָÿò¼ÜµÄÆô¶¯ÏûºÄ¡£

Èç¹ûÄãµÄ JavaScript ¿ò¼ÜÖ§³Ö AOT(ahead-of-time)±àÒëģʽ£¬ÄÇôÄܹ»ÓÐЧµØ¼õÉÙ½âÎöÓë±àÒëµÄʱ¼ä¡£Angular Ó¦ÓþÍÊÜÒæÓÚÕâÖÖģʽ£º

ÏÖ´úä¯ÀÀÆ÷ÊÇÈçºÎÌá¸ß½âÎöÓë±àÒëËٶȵÄ?

²»ÓûÒÐÄ£¬Äã²¢²»ÊÇΨһ¾À½áÓÚÈçºÎÌáÉýÆô¶¯Ê±¼äµÄÈË£¬ÎÒÃÇ V8 ÍŶÓÒ²Ò»Ö±ÔÚŬÁ¦¡£ÎÒÃÇ·¢ÏÖ֮ǰµÄij¸öÆÀ²â¹¤¾ß Octane ÊǸö²»´íµÄ¶ÔÓÚÕæÊµ³¡¾°µÄÄ£Ä⣬ËüÔÚ΢ÐÍ¿ò¼ÜÓëÀäÆô¶¯·½ÃæºÜ·ûºÏÕæÊµµÄÓû§Ï°¹ß¡£¶ø»ùÓÚÕâЩ¹¤¾ß£¬V8 ÍŶÓÔÚ¹ýÈ¥µÄ¹¤×÷ÖÐҲʵÏÖÁË´óÔ¼ 25% µÄÆô¶¯ÐÔÄÜÌáÉý£º

±¾²¿·ÖÎÒÃǾͻá¶Ô¹ýÈ¥¼¸ÄêÖÐÎÒÃÇʹÓõÄÌáÉýÓï·¨½âÎöÓë±àÒëʱ¼äµÄ¼¼ÇɽøÐвûÊö¡£

´úÂ뻺´æ

Chrome 42 ¿ªÊ¼ÒýÈëÁËËùνµÄ´úÂ뻺´æµÄ¸ÅÄΪÎÒÃÇÌṩÁËÒ»ÖÖ´æ·Å±àÒëºóµÄ´úÂ븱±¾µÄ»úÖÆ£¬´Ó¶øµ±Óû§¶þ´Î·ÃÎʸÃÒ³ÃæÊ±¿ÉÒÔ±ÜÃâ½Å±¾×¥È¡¡¢½âÎöÓë±àÒëÕâЩ²½Öè¡£³ýÒÔÖ®Í⣬ÎÒÃÇ»¹·¢ÏÖÔÚÖØ¸´·ÃÎʵÄʱºòÕâÖÖ»úÖÆ»¹ÄܱÜÃâ 40% ×óÓҵıàÒëʱ¼ä£¬ÕâÀïÎÒ»áÉîÈë½éÉÜһЩÄÚÈÝ£º

´úÂ뻺´æ»á¶ÔÓÚÄÇЩÔÚ 72 Сʱ֮ÄÚÖØ¸´Ö´ÐеĽű¾Æð×÷Óá£

¶ÔÓÚ Service Worker ÖеĽű¾£¬´úÂ뻺´æÍ¬Ñù¶Ô 72 Сʱ֮ÄڵĽű¾Æð×÷Óá£

¶ÔÓÚÀûÓà Service Worker »º´æÔÚ Cache Storage ÖеĽű¾£¬´úÂ뻺´æÄÜÔڽű¾Ê×´ÎÖ´ÐеÄʱºòÆð×÷Óá£

×ܶøÑÔÖ®£¬¶ÔÓÚÖ÷¶¯»º´æµÄ JavaScript ´úÂ룬×î¶àÔÚµÚÈý´Îµ÷ÓõÄʱºòÆäÄܹ»Ìø¹ýÓï·¨·ÖÎöÓë±àÒëµÄ²½Öè¡£ÎÒÃÇ¿ÉÒÔͨ¹ýchrome://flags/#v8-cache-strategies-for-cache-storageÀ´²é¿´ÆäÖеIJîÒ죬Ҳ¿ÉÒÔÉèÖÃ?js-flags=profile-deserializationÔËÐÐ Chrome À´²é¿´´úÂëÊÇ·ñ¼ÓÔØ×Ô´úÂ뻺´æ¡£²»¹ýÐèҪעÒâµÄÊÇ£¬´úÂ뻺´æ»úÖÆ½ö»á»º´æÄÇЩ¾­¹ý±àÒëµÄ´úÂ룬Ö÷ÒªÊÇÖ¸ÄÇЩ¶¥²ãµÄÍùÍùÓÃÓÚÉèÖÃÈ«¾Ö±äÁ¿µÄ´úÂë¡£¶ø¶ÔÓÚÀàËÆÓÚº¯Êý¶¨ÒåÕâÑùÀÁ±àÒëµÄ´úÂë²¢²»»á±»»º´æ£¬²»¹ý IIFE ͬÑù±»°üº¬ÔÚÁË V8 ÖУ¬Òò´ËÕâЩº¯ÊýÒ²ÊÇ¿ÉÒÔ±»»º´æµÄ¡£

Script Streaming

Script StreamingÔÊÐíÔÚºǫ́Ïß³ÌÖжÔÒì²½½Å±¾Ö´ÐнâÎö²Ù×÷£¬¿ÉÒÔ¶ÔÓÚÒ³Ãæ¼ÓÔØÊ±¼äÓдó¸Å 10% µÄÌáÉý¡£ÉÏÎÄÒ²Ìáµ½¹ý£¬Õâ¸ö»úÖÆÍ¬Ñù»á¶Ôͬ²½½Å±¾Æð×÷Óá£

Õâ¸öÌØÐÔµ¹ÊǵÚÒ»´ÎÌá¼°£¬Òò´Ë V8 »áÔÊÐíËùÓеĽű¾£¬¼´Ê¹×èÈûÐ͵Ä<script src=''>½Å±¾Ò²¿ÉÒÔÓɺǫ́Ï߳̽øÐнâÎö¡£²»¹ýȱÏݾÍÊÇĿǰ½öÓÐÒ»¸ö streaming ºǫ́Ï̴߳æÔÚ£¬Òò´ËÎÒÃǽ¨ÒéÊ×ÏȽâÎö´óµÄ¡¢¹Ø¼üÐԵĽű¾¡£ÔÚʵ¼ùÖУ¬ÎÒÃǽ¨Ò齫<script defer>Ìí¼Óµ½<head>¿éÄÚ£¬ÕâÑùä¯ÀÀÆ÷ÒýÇæ¾ÍÄܹ»¾¡ÔçµØ·¢ÏÖÐèÒª½âÎöµÄ½Å±¾£¬È»ºó½«Æä·ÖÅ䏸ºǫ́Ï߳̽øÐд¦Àí¡£ÎÒÃÇÒ²¿ÉÒԲ鿴 DevTools Timeline À´È·¶¨½Å±¾ÊÇ·ñ±»ºǫ́½âÎö£¬ÌرðÊǵ±Äã´æÔÚij¸ö¹Ø¼üÐԽű¾ÐèÒª½âÎöµÄʱºò£¬¸üÐèҪȷ¶¨¸Ã½Å±¾ÊÇÓÉ streaming Ï߳̽âÎöµÄ¡£

Óï·¨½âÎö & ±àÒëÓÅ»¯

ÎÒÃÇͬÑùÖÂÁ¦ÓÚ´òÔì¸üÇáÁ¿¼¶¡¢¸ü¿ìµÄ½âÎöÆ÷£¬Ä¿Ç° V8 Ö÷Ïß³ÌÖÐ×î´óµÄÆ¿¾±ÔÚÓÚËùνµÄ·ÇÏßÐÔ½âÎöÏûºÄ¡£Æ©ÈçÎÒÃÇÓÐÈçϵĴúÂëÆ¬£º

(function (global, module) { ¡­ })(this, function module() { my functions }) 

V8 ²¢²»ÖªµÀÎÒÃDZàÒëÖ÷½Å±¾µÄʱºòÊÇ·ñÐèÒªmoduleÕâ¸öÄ£¿é£¬Òò´ËÎÒÃÇ»áÔÝʱ·ÅÆú±àÒëËü¡£¶øµ±ÎÒÃÇ´òËã±àÒëmoduleʱ£¬ÎÒÃÇÐèÒªÖØ·ÖÎöËùÓеÄÄÚ²¿º¯Êý¡£ÕâÒ²¾ÍÊÇËùνµÄ V8 ½âÎöʱ¼ä·ÇÏßÐÔµÄÔ­Òò£¬ÈκÎÒ»¸ö´¦ÓÚ N ²ãÉî¶ÈµÄº¯Êý¶¼ÓпÉÄܱ»ÖØÐ·ÖÎö N ´Î¡£V8 ÒѾ­Äܹ»ÔÚÊ״αàÒëµÄʱºòËѼ¯ËùÓÐÄÚ²¿º¯ÊýµÄÐÅÏ¢£¬Òò´ËÔÚδÀ´µÄ±àÒë¹ý³ÌÖÐ V8 »áºöÂÔËùÓеÄÄÚ²¿º¯Êý¡£¶ÔÓÚÉÏÃæÕâÖÖmoduleÐÎʽµÄº¯Êý»áÊǺܴóµÄÐÔÄÜÌáÉý£¬½¨ÒéÔĶÁThe V8 Parser(s)?¡ª?Design, Challenges, and Parsing JavaScript BetterÀ´»ñÈ¡¸ü¶àÄÚÈÝ¡£V8 ͬÑùÔÚѰÕÒºÏÊʵķÖÁ÷»úÖÆÒÔ±£Ö¤Æô¶¯Ê±ÄÜÔÚºǫ́Ïß³ÌÖÐÖ´ÐÐ JavaScript ±àÒë¹ý³Ì¡£

Ô¤±àÒë JavaScript?

ÿ¸ô¼¸Äê¾ÍÓÐÈËÌá³öÒýÇæÓ¦¸ÃÌṩһЩ´¦ÀíÔ¤±àÒë½Å±¾µÄ»úÖÆ£¬»»ÑÔÖ®£¬¿ª·¢Õß¿ÉÒÔʹÓù¹½¨¹¤¾ß»òÕ߯äËû·þÎñ¶Ë¹¤¾ß½«½Å±¾×ª»¯Îª×Ö½ÚÂ룬Ȼºóä¯ÀÀÆ÷Ö±½ÓÔËÐÐÕâЩ×Ö½ÚÂë¼´¿É¡£´ÓÎÒ¸öÈ˹۵ãÀ´¿´£¬Ö±½Ó´«ËÍ×Ö½ÚÂëÒâζןü´óµÄ°üÌå£¬ÊÆ±Ø»áÔö¼Ó¼ÓÔØÊ±¼ä;²¢ÇÒÎÒÃÇÐèҪȥ¶Ô´úÂë½øÐÐÇ©ÃûÒÔ±£Ö¤Äܹ»°²È«ÔËÐС£Ä¿Ç°ÎÒÃǶÔÓÚ V8 µÄ¶¨Î»ÊǾ¡¿ÉÄܵرÜÃâÉÏÎÄËù˵µÄÄÚ²¿ÖØ·ÖÎöÒÔÌá¸ßÆô¶¯Ê±¼ä£¬¶øÔ¤±àÒëÔò»á´øÀ´¶îÍâµÄ·çÏÕ¡£²»¹ýÎÒÃÇ»¶Ó­´ó¼ÒÒ»ÆðÀ´ÌÖÂÛÕâ¸öÎÊÌ⣬ËäÈ» V8 ĿǰרעÓÚÌáÉý±àÒëЧÂÊÒÔ¼°ÍƹãÀûÓà Service Worker »º´æ½Å±¾´úÂëÀ´ÌáÉýÆô¶¯Ð§ÂÊ¡£ÎÒÃÇÔÚ BlinkOn7 ÉÏÓë Facebook ÒÔ¼° Akamai Ò²ÌÖÂÛ¹ýÔ¤±àÒëÏà¹ØÄÚÈݵã»÷Ô¤ÀÀ¡£

Optimize JS ÓÅ»¯

ÀàËÆÓÚ V8 ÕâÑùµÄ JavaScript ÒýÇæÔÚ½øÐÐÍêÕûµÄ½âÎö֮ǰ»á¶Ô½Å±¾ÖеĴ󲿷ֺ¯Êý½øÐÐÔ¤½âÎö£¬ÕâÖ÷ÒªÊÇ¿¼Âǵ½´ó²¿·ÖÒ³ÃæÖаüº¬µÄ JavaScript º¯Êý²¢²»»áÁ¢¿Ì±»Ö´ÐС£

Ô¤±àÒëÄܹ»Í¨¹ýÖ»´¦ÀíÄÇЩä¯ÀÀÆ÷ÔËÐÐËùÐèÒªµÄ×îСº¯Êý¼¯ºÏÀ´ÌáÉýÆô¶¯Ê±¼ä£¬²»¹ýÕâÖÖ»úÖÆÔÚ IIFE ÃæÇ°È´·´¶ø½µµÍÁËЧÂÊ¡£¾¡¹ÜÒýÇæÏ£Íû±ÜÃâ¶ÔÕâЩº¯Êý½øÐÐÔ¤´¦Àí£¬µ«ÊÇÔ¶²»Èçoptimize-jsÕâÑùµÄ¿âÓÐ×÷Óá£optimize-js »áÔÚÒýÇæÖ®Ç°¶ÔÓڽű¾½øÐд¦Àí£¬¶ÔÓÚÄÇЩÁ¢¼´Ö´Ðеĺ¯Êý²åÈëÔ²À¨ºÅ´Ó¶ø±£Ö¤¸ü¿ìËÙµØÖ´ÐС£ÕâÖÖÔ¤´¦Àí¶ÔÓÚ Browserify, Webpack Éú³É°üÌåÕâÑù°üº¬ÁË´óÁ¿¼´¿ÌÖ´ÐеÄСģ¿éÆðµ½Á˷dz£²»´íµÄÓÅ»¯Ð§¹û¡£¾¡¹ÜÕâÖÖС¼¼Çɲ¢·Ç V8 ËùÏ£ÍûʹÓõ쬵«ÊÇÔÚµ±Ç°½×¶Î²»µÃ²»ÒýÈëÏàÓ¦µÄÓÅ»¯»úÖÆ¡£

×ܽá

Æô¶¯½×¶ÎµÄÐÔÄÜÖÁ¹ØÖØÒª£¬»ºÂýµÄ½âÎö¡¢±àÒëÓëÖ´ÐÐʱ¼ä¿ÉÄܳÉΪÄãÍøÒ³ÐÔÄܵį¿¾±ËùÔÚ¡£ÎÒÃÇÓ¦¸ÃÆÀ¹ÀÒ³ÃæÔÚÕâ¸ö½×¶ÎµÄʱ¼äÕ¼±È²¢ÇÒÑ¡ÔñºÏÊʵķ½Ê½À´ÓÅ»¯¡£ÎÒÃÇÒ²»á¼ÌÐøÖÂÁ¦ÓÚÌáÉý V8 µÄÆô¶¯ÐÔÄÜ£¬¾¡ÎÒËùÄÜ!

   
2405 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕ Ïà¹ØÎĵµ Ïà¹Ø¿Î³Ì



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Àí½âJavascript
·ÇµäÐÍajaxʵ¼ù
³¹µ×µÄAjax
javascript ʹÓÃCookies
ʹÓà jQuery ¼ò»¯ Ajax ¿ª·¢

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

ijº½¿Õ¹«Ë¾IT²¿ JavaScriptʵ¼ù
ijµçÊÓÈí¼þ HTML5ºÍJavaScript
Öк½ÐÅ JavaScript¸ß¼¶Ó¦Óÿª·¢
´óÇìÓÍÌï web½çÃæAjax¿ª·¢¼¼Êõ
ºÍÀûʱ ʹÓÃAJAX½øÐÐWEBÓ¦Óÿª·¢