ãããã¤ã³ã¹ãã¼ã«ä»£è¡¨ã®ã©ã¤ãããã¯ããã°
ãããã¤ã³ã¹ãã¼ã«ä»£è¡¨ã®ã©ã¤ãããã¯ããã°
Posted at 2010/10/22 01:59, Modified at 2010/10/22 03:42 Facebook ã®ããã³ãã¨ã³ãã¯çµæ§ããã£ããã¨ããã£ã¦ãã¦ãä¾ãã°ããã°ã¤ã³å¾ã® http://www.facebook.com/home.php ã«ã¯ <div id="pagelet_home_stream"></div> ã¿ãããªç©ºã® HTML ãããããã®å¾ã« <script>big_pipe.onPageletArrive({ ⦠});</script> <script>big_pipe.onPageletArrive({ ⦠});</script> ... 㨠script è¦ç´ ãä½åããªããã§ããã BigPipe: Pipelining web pages for high performance ãã®ä»çµã¿ã¯ (å¤æ°åã®ã¨ãã) BigPipe ã¨å¼
In Visual Studio 2022 17.10 Preview 2, weâve introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Please install the latest Preview to try it out. Read on to learn what the Connection ...
W3CãWebã¢ããªã±ã¼ã·ã§ã³ã®å®è¡æ§è½ã«é¢ããæ¨æºä»æ§ã®ã¯ã¼ã¯ã°ã«ã¼ããWeb Performance Working Groupããè¨ç½® HTML5ãªã©ã®æ®åã«ãã£ã¦ãWebãã©ã¦ã¶ã¯ããã¥ã¡ã³ãé²è¦§ãã¼ã«ããã¢ããªã±ã¼ã·ã§ã³ãã©ãããã©ã¼ã ã¸ã¨å¤ãã£ã¦ããæ¹åã§é²åãã¦ãã¾ãããã®ã¨ããWebã¢ããªã±ã¼ã·ã§ã³ã®éçºè ã«ã¨ã£ã¦éè¦ãªé¢å¿äºé ã¨ãªã£ã¦ããã®ãWebã¢ããªã±ã¼ã·ã§ã³ã®å®è¡é度ã§ãã ããã§W3Cã¯ãWebã¢ããªã±ã¼ã·ã§ã³ã®å®è¡æ§è½ã«é¢ããæ¨æºã«ã¤ãã¦çå®ãããWeb Performance Working Groupãã®è¨ç½®ãçºè¡¨ãã¾ããã ãã¼ã¸ã®ãã¼ããå½ä»¤ã®å®è¡ã«ãããæéãè¿ãAPI ãã®ã¯ã¼ã¯ã°ã«ã¼ãã¯ããã³ããã¼ã¯ããã°ã©ã ã®ãããªãã®ãéçºããããã§ã¯ããã¾ããããWeb Performance Working Group Charterãï¼Web Perfo
ã¾ãã¯æ¬¡ã®è¡¨ãã覧ãããããã¯ããã°ã©ãã³ã°è¨èªã®ãã³ããã¼ã¯ã¨ãã¦æå㪠Computer Language Benchmarks Game ã®ãã³ããã¼ã¯çµæãä¸ã«ããã»ã©é«éã§ãä¸ã«è¡ãã»ã©é ãè¨èªã«ãªãã ãããè¦ãã°ãæéãªè¨èªã¯ C/C++ ã§ãããJava ã Haskell ã OCaml ã¨ãã£ãéçãªè¨èªã¯è»ä¸¦ã¿ä¸ä½ã«ç»å ´ãããããã«å¯¾ããRuby ã Python ã PHP ã¨ãã£ãã¹ã¯ãªããã¯å ¨é¨ä¸ã®ã»ã (ã¤ã¾ãé ã)ããã®é度差ã¯é常ã«å¤§ããããã®ãã³ããã¼ã¯ã§è¦ã㨠Python3 ã Ruby1.9 㯠C/C++ ã®ç´50åãã60åé ããPerl ã¯ç´90åãPHP ã«ããã£ã¦ã¯ç´130åé ããã¨ã«ãªãã (ã¡ãªã¿ã« JIT ã¤ãã® Lua ãé©ç°çã«é«éãªã®ãç®ãã²ãããã®çµæãæ¬å½ã ã¨ããããè¨èªã®é度ã«å¤§ããé¢ä¿ããã®ã¯åçãéçãã§ã¯ãªããã©ã
ã¦ã¼ã¶ã¼å士ã®ã¤ãªãããå ã«æç³»åã«140æåã®ã¡ãã»ã¼ã¸ã20åã»ã©è¡¨ç¤ºããââãTwitterã®ãµã¼ãã¹ã¯ãæåã«ãã¦ãã¾ãã¨å®ã«ã·ã³ãã«ã ããèå¾ã«ã¯é常ã«å¤§ããªæè¡çãã£ã¬ã³ã¸ã横ããã£ã¦ãããã¤ã¶ããæ°ã¯æé10å件ãçªç ´ãTwitterãæµããã¡ãã»ã¼ã¸æ°ã¯ç§é120ä¸ã«ãéããã¦ã¼ã¶ã¼å士ã®ã¤ãªããã表ãã½ã¼ã·ã£ã«ã»ã°ã©ãã§ããã¡ã¢ãªã«è¼ãéãè¶ ãã¦ãããéæ¹ããªãã¹ã±ã¼ã«ã®ãã¼ã¿ãã¤ãªãã§ããã«ãé¢ãããã0.1ç§ä»¥ä¸ã§Webãã¼ã¸ã®è¡¨ç¤ºãå®äºãããªããã°ãªããªãããã®ããã«åãã¼ã¿ã¹ãã¬ã¼ã¸ã¯1ï½5msç¨åº¦ã§å¿çããªããã°ãªããªãã Twitterã®ãªã¹ãæ©è½ã®å®è£ ã§ããã¸ã§ã¯ããªã¼ãã¼ãåãããã¨ãããNick Kallenæ°ãæ¥æ¥ãã2010å¹´4æ19æ¥ãã2æ¥éã®äºå®ã§éå¬ä¸ã®ãQCon Tokyo 2010ãã§åºèª¿è¬æ¼ãè¡ã£ãããData Architecture
Twitterãåæ£ãã¬ã¼ã ã¯ã¼ã¯ãGizzardãå ¬éï¼ Scalaã§æ¸ãããShardingãå®ç¾ããããã«ã¦ã§ã¢ Twitterã¯ç¬èªã«éçºããåæ£ãã¬ã¼ã ã¯ã¼ã¯ã®ãGizzardãããªã¼ãã³ã½ã¼ã¹ã¨ãã¦å ¬éãã¾ãããGizzardã¯Scalaã§æ¸ãããJavaVMä¸ã§åä½ããããã«ã¦ã§ã¢ã§ãPHPãRubyã¨ãã£ãWebã¢ããªã±ã¼ã·ã§ã³ããã®è¦æ±ãèªåçã«ãã¼ã¿ãã¼ã¹ã«åæ£ãããã¨ã§ã大è¦æ¨¡ã§å¯ç¨æ§ã®é«ãåæ£ãã¼ã¿ãã¼ã¹ã容æã«å®ç¾ããããã®ãã®ã§ãã Gizzardï¼ãã©ã«ããã¬ã©ã³ããªåæ£ãã¼ã¿ãã¼ã¹ãå®ç¾ The Twitter Engineering Blog: Introducing Gizzard, a framework for creating distributed datastores Twitterã®ããã°ã«ãã¹ãããããIntroducing Gizzard
Twitterãå©ç¨ãã¦ããã¨ãã¨ãã©ãã¯ã¸ã©ã®çµµã®ç»é¢ã表示ããããã¨ãããã¾ããããã¯Twitterã®å¦çè½åããã³ã¯ãã¦ä¸æçã«å©ç¨ä¸å¯ã«ãªã£ãã¨ãã«è¡¨ç¤ºãããã馴æã¿ã®ç»é¢ã 2æ9æ¥ã«Twitter Engineeringããã°ã«ãã¹ããããã¨ã³ããªãThe Anatomy of a Whaleãï¼ã¯ã¸ã©ã®è§£åå¦ï¼ã§ã¯ãTwitterã®ã¨ã³ã¸ãã¢ãã¡ããã®ã¯ã¸ã©ã®å é¨ã«åãå ¥ã£ã¦ã©ã®ããã«Twitterãµã¼ãã®å¦çè½åãåä¸ãããã®ããã¨ãã話ã詳ããèªããã¦ãã¾ãã å½¼ããè¡ã£ãã®ã¯ãã¾ã詳細ãªãã¼ã¿ãåå¾ãã¦åå ãã©ã®è¾ºã«ããã®ããæ¨æ¸¬ãããã¨ãããããå¤æ°ã®ç¡é§ãªå¦çãçºè¦ããã½ã¼ã¹ã³ã¼ãã®ä¿®æ£ã«ããæ§è½ã®åä¸ã«æåãã¾ãã å è¨äºã¯é常ã«é·ãã¨ã³ããªã«ãªã£ã¦ãã¾ãããåé¡ã®èª¿æ»ãã解決ã«è³ãã¢ããã¼ãã«ã¤ãã¦å¤ãã®ã¨ã³ã¸ãã¢ã®æ¹ã®åèã«ãªããããªå 容ãå«ã¾ãã¦ãã¾ãããT
ã¡ãã£ã¨ãã£ããâãªã¿ã¤ãã«ãã¤ãã¦ãã¾ã£ãããä»æ¥ã¯ç¬æã¨åè¦ã§MySQLãé«éåããæ¹æ³ã10åç´¹ä»ããããMySQLãµã¼ãããã¥ã¼ãã³ã°ããã¨ããåæå°å ¥ããå ´åãªã©ã«åèã«ãã¦ãããããã 1. ãããã¡ãå¢ãããã¾ãã¯æ¸ãã ãã¥ã¼ãã³ã°ã®åºæ¬ä¸ã®åºæ¬ã§ããããé©åãªãããã¡ãµã¤ãºãè¨å®ãããã¨ã¯ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ã®è¦ã§ããã主ãªãããã¡ã¯æ¬¡ã®éãã innodb_buffer_pool_sizeã»ã»ã»InnoDBã ããå©ç¨ããå ´åã¯ç©ºãã¡ã¢ãªã®7ã8å²ç¨åº¦ãå²ãå½ã¦ãæãéè¦ãªãããã¡ã§ãããä½è«ã ããå®éã«ã¯ããã§å²ãå½ã¦ãå¤ã®5ã10%ããããå¤ãã«ã¡ã¢ãªã使ãã®ã§æ³¨æãå¿ è¦ã ã key_buffer_sizeã»ã»ã»MyISAMã ããå©ç¨ããå ´åã¯ã空ãã¡ã¢ãªã®3å²ç¨åº¦ãå²ãå½ã¦ãã¨ãããæ®ãã¯ãã¡ã¤ã«ã·ã¹ãã ã®ãã£ãã·ã¥ç¨ã«æ®ãã¦ãããã sort_buffer_
ããã¶ãåã«ãããã«ãã¹ã¬ããã»ããã°ã©ãã³ã°ã®è½ã¨ãç©´ããã®ï¼ï¼ãããããªãï¼ãã¨ããã¨ã³ããªã¼ãæ¸ããããä»åã¯PhotoShareãµã¼ãã¼ãéå¶ãã¦ãã¦ãã¾ãã«ãã®ãããã®æ·±ãèå¯ãå¿ è¦ã«ãªã£ã¦æ¥ãã®ã§ãè¯ãæ©ä¼ãªã®ã§ç¶ç·¨ã¨ã³ããªã¼ã PhotoShareã®ããã¯ã¨ã³ãã®ããã«CRUDï¼Create/Read/Update/Deleteï¼ã®APIããµãã¼ãããããã¯ã¨ã³ããä½ãå ´åãCreate/Update/Deleteã®ãªã¯ã¨ã¹ãã«å¯¾ãã¦ã¯ã¯ã©ã¤ã¢ã³ãããã®APIã³ã¼ã«æã«ããã«ï¼HTTP Requestã«è¿äºãããåã«ï¼ãã¼ã¿ãã¼ã¹ã«å¤æ´ãå ããReadã®éã«ãï¼ãã£ãã·ã¥ã使ãã»ä½¿ããªããå¥ã«ãã¦ï¼ãã¼ã¿ãã¼ã¹ã®ææ°ã®ç¶æ³ãåæ ãããã¼ã¿ãè¿ãããã«è¨è¨ããã®ãæ®éã§ããã ãã®ã¢ã¼ããã¯ãã£ã®åé¡ã¯ãã¦ã¼ã¶ã¼ã®ã¢ã¯ãã£ããã£ãå¢ããæã«ããã¼ã¿ãã¼ã¹ãI/Oãããã«ããã¯ã¨
Sutter's Mill - Server Concurrency != Client Concurrency Exceptional C++ ã®èè ã¨ãã¦æå㪠Herb Sutter ãããæè¿ã¯ã½ããã¦ã§ã¢ã®ä¸¦è¡æ§ (concurrency) ã«é¢ããåèæ´»åãç²¾åçã«è¡ã£ã¦ããããã®æ´»åã®ä¸é¨ã¯ Dr. Dobb's ã®è¨äºãæ°ã®ããã°ãªã©ã§è¦ããã¨ãã§ããã ã½ããã¦ã§ã¢ã®ä¸¦è¡æ§ãï¼ããã«ãã£ã¦å¾ãããã¹ã±ã¼ã©ããªãã£ãï¼ã©ãã ãéè¦ãªãã¨ãã¨ããã®ã¯ï¼ä¾ãã° Google ãæä¾ãã¦ããæ§ã ãªãµã¼ãã¹ãªã©ãè¦ã¦ã¿ãã°å®æã§ãããã¨ã§ï¼æè¿ã§ã¯ããã»ã©çããèãã§ã¯ãªããªã£ã¦ããã¨æãã ã§ãï¼ããã¯ããã¾ã§ããµã¼ãã¼å´ã®ä¸çã§èµ·ãã£ã¦ãããã¨ã®è©±ã Google ãæã£ã¦ãããããªãµã¼ãã¼ã«ã¯ï¼æ°ã®é ããªããããªéã®ãã¼ã¿ãæ ¼ç´ããã¦ãã¦ï¼ããã«å¯¾ãã¦ã¨ãã§ããªãæ°ã®ãªã¯ã¨ã¹
AjaxãCSSãæ§ã ãªJavaScriptã©ã¤ãã©ãªã«ãã£ã¦ããµã¤ãã豪è¯ã«ãªã£ã¦ããåé¢ãå ¨ä½çãªã·ã¹ãã ããã©ã¼ãã³ã¹ã¯æ¥æ¿ã«æªåãã¦ãããJavaScriptçã§ããã®ãµã¤ãã¯éããªã¨æããäºãå°ãªãããããã¯ãã ã 便å©ãªæ©è½ãæä¾ããéããããã¯å¤ããããªãã®ã ããããããããããªäºã¯ãªããå¤ããã¹ããã¤ã³ãã¯å¹¾ã¤ãåå¨ããããããç確ã«ã¢ããã¤ã¹ãã¦ãããã®ããã®ãã¼ã«ã ã ä»åç´¹ä»ãããªã¼ãã³ã½ã¼ã¹ã»ã½ããã¦ã§ã¢ã¯YSlowãFirebugã¨é£æºããããã©ã¼ãã³ã¹ãã§ãã«ã¼ã ã YSlowã¯Yahoo! Inc.ã«ããéçºãæä¾ããã¦ããã½ããã¦ã§ã¢ã§ãFirefoxã®ã¢ããªã³ã§ããFirebugã¨é£æºãã¦å©ç¨ãããããã©ã¼ãã³ã¹ãæ¹åããããµã¤ãã«ã¢ã¯ã»ã¹ããYSlowã®ã¢ã¤ã³ã³ãã¯ãªãã¯ããã°è¯ãã ãã ã ãã§ãã¯ãããé ç®ã¯HTTPãªã¯ã¨ã¹ãã®æ°ãGzipå§ç¸®ããã¦ã
以ä¸ã®ä¸è¡ããã¹ã¦ã® JavaScript ã®åã«èªã¿è¾¼ã /*@cc_on _d=document;eval('var document=_d')@*/ ãã®ä¸è¡ãèªã¿è¾¼ããã¨ã«ãã£ã¦ IE ã§ã® document ã¸ã®ã¢ã¯ã»ã¹ã 5 åéããªãã¾ãã ãã¨ã㰠以ä¸ã®ããã«ãèªã¿è¾¼ãåã¨èªã¿è¾¼ãã å¾ãæ¯è¼ãã¦ã¿ã¾ãã // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}