Windows ã®éçã«æã: ããã»ã¹ã¨ã¹ã¬ãã翻訳å : Pushing the Limits of Windows: Processes and Threads (è±èª) ãã®è¨äºã¯ãWindows ã®åºæ¬çãªãªã½ã¼ã¹ã®éçã«ã¤ãã¦èå¯ãããWindows ã®éçã«æããã·ãªã¼ãºã® 4 åç®ã®æç¨¿ã§ããä»åã¯ãWindows ã§ãµãã¼ããããã¹ã¬ããããã³ããã»ã¹ã®æå¤§æ°ã®å¶éã«ã¤ãã¦èª¬æãã¾ããã¹ã¬ããã¨ããã»ã¹ã®éãã«ã¤ãã¦ç°¡åã«èª¬æããã¹ã¬ããã®å¶éããããã»ã¹ã®å¶éã«ã¤ãã¦èå¯ãã¦ããã¾ããåãã«ã¹ã¬ããã®å¶éãåãä¸ãã¾ããã¢ã¯ãã£ã ããã»ã¹ã«ã¯ããããæä½ 1 ã¤ã®ã¹ã¬ããããã (çµäºãããããã»ã¹ã§ãå¥ã®ããã»ã¹ãææãããã³ãã«ã§åç §ããã¦ããããã»ã¹ã¯ã¹ã¬ãããæããªã) ãããããã»ã¹ã«å¯¾ããå¶éã¯ãã¹ã¬ããã®ä¸éå¤ã®å½±é¿ãç´æ¥åããããã§ãã ä¸é¨ã® UNIX ããªã¢ã³ãã¨ã¯ç°ãªããWindows ã®ã»ã¨ãã©ã®ãªã½ã¼ã¹ã«ã¤ãã¦ãåºå®ã®ä¸éå¤ã¯ãªãã¬ã¼ãã£ã³ã° ã·ã¹ãã ã«ã³ã³ãã¤ã«ããã¦ããããããã¾ã§ã«èª¬æãã¦ããåºæ¬çãªãªãã¬ã¼ãã£ã³ã° ã·ã¹ãã ã®ãªã½ã¼ã¹ã«åºã¥ãã¦å¶éãæ±ºå®ããã¾ãããã¨ãã°ãããã»ã¹ã¨ã¹ã¬ããã¯ãç©çã¡ã¢ãªãä»®æ³ã¡ã¢ãªãããã³ãã¼ã« ã¡ã¢ãªãå¿ è¦ã¨ãããããç¹å®ã® Windows ã·ã¹ãã ã§ä½æã§ããããã»ã¹ãã¹ã¬ããã®æ°ã¯ãããã»ã¹ãã¹ã¬ãããã©ã®ããã«ä½æããããããã³æåã«ã©ã®å¶ç´ã«å°éãããã«ãã£ã¦ç°ãªãã¾ãããæçµçã«ã¯ãããã®ãªã½ã¼ã¹ã®ããããã«ãã£ã¦æ±ºã¾ãã¾ãããããã£ã¦ãååã¾ã§ã®æç¨¿ãã¾ã èªãã§ããªãå ´åã¯ãå ã«ãèªã¿ã«ãªããã¨ããå§ããã¾ãããã®è¨äºã§ã¯ãããã¾ã§ã«èª¬æãããäºç´æ¸ã¿ã®ã¡ã¢ãªãã³ãããæ¸ã¿ã®ã¡ã¢ãªãã·ã¹ãã ã³ãããå¶éãããã³ãã®ä»ã®æ¦å¿µã«ã¤ãã¦è¨åãã¦ããããã§ãã
ããã»ã¹ã¨ã¹ã¬ããWindows ã®ããã»ã¹ã¯ãåºæ¬çã«ã¯ãå®è¡å¯è½ã¤ã¡ã¼ã¸ ãã¡ã¤ã«ã®å®è¡ããã¹ãããã³ã³ããã¼ã§ããããã»ã¹ã¯ã«ã¼ãã« ããã»ã¹ ãªãã¸ã§ã¯ãã«ãã£ã¦è¡¨ãããWindows ã¯ãã®ããã»ã¹ ãªãã¸ã§ã¯ãã¨é¢é£ãããã¼ã¿æ§é ã使ç¨ãã¦ãã¤ã¡ã¼ã¸ã®å®è¡ã«é¢ããæ å ±ãæ ¼ç´ããã³è¿½è·¡ãã¾ãããã¨ãã°ãããã»ã¹ã¯ãããã»ã¹ã®ãã©ã¤ãã¼ã ãã¼ã¿ããã³å ±ç¨ãã¼ã¿ãä¿æããä»®æ³ã¢ãã¬ã¹ç©ºéãæã¡ããã®ä»®æ³ã¢ãã¬ã¹ç©ºéã«å®è¡å¯è½ã¤ã¡ã¼ã¸ããã³é¢é£ä»ãããã DLL ããããããã¾ããWindows ã§ã¯ãã¢ã«ã¦ã³ãã£ã³ã°ã¨è¨ºæãã¼ã«ã«ããã¯ã¨ãªã®ããã«ãããã»ã¹ã«ãããªã½ã¼ã¹ã®ä½¿ç¨ãè¨é²ããããã»ã¹ã«ãããªãã¬ã¼ãã£ã³ã° ã·ã¹ãã ãªãã¸ã§ã¯ãã¸ã®åç §ãããã»ã¹ã®ãã³ãã« ãã¼ãã«ã«ç»é²ãã¾ããããã»ã¹ã¯ãã¼ã¯ã³ã¨å¼ã°ããã»ãã¥ãªã㣠ã³ã³ããã¹ãã§åä½ããããã»ã¹ã«å²ãå½ã¦ããã¦ããã¦ã¼ã¶ã¼ ã¢ã«ã¦ã³ããã¢ã«ã¦ã³ã ã°ã«ã¼ããããã³ç¹æ¨©ããã¼ã¯ã³ã«ãã£ã¦èå¥ããã¾ãã ããã«ãããã»ã¹ã«ã¯ãããã»ã¹å ã§å®éã«ã³ã¼ããå®è¡ãã (æè¡çã«ã¯ãããã»ã¹ãå®è¡ãããã®ã§ã¯ãªããã¹ã¬ãããå®è¡ããã) ã¹ã¬ããã¨ãã«ã¼ãã« ã¹ã¬ãã ãªãã¸ã§ã¯ãã§è¡¨ãããã¹ã¬ãããã1 ã¤ä»¥ä¸å«ã¾ãã¾ããã¢ããªã±ã¼ã·ã§ã³ãæ¢å®ã®åæã¹ã¬ããã«å ãã¦ã¹ã¬ããã使ããçç±ã¯ããã¤ãããã¾ããã¦ã¼ã¶ã¼ ã¤ã³ã¿ã¼ãã§ã¤ã¹ãæã¤ããã»ã¹ã¯ãé常ãè¤æ°ã®ã¹ã¬ããã使ãã¦ä½æ¥ãå®è¡ããã¡ã¤ã³ ã¹ã¬ãããã¦ã¼ã¶ã¼å ¥åã¨ã¦ã£ã³ãã¦æä½ã³ãã³ããå¦çã§ããããã«ãã¾ããã¾ããã¹ã±ã¼ã©ããªãã£ã®ããã«è¤æ°ã®ããã»ããµãå©ç¨ããã¢ããªã±ã¼ã·ã§ã³ããã¹ã¬ãããåæ I/O å¦çãå®äºããã¾ã§å¾ æ©ãã¦åæ¢ãã¦ããéãå®è¡ããå¿ è¦ãããã¢ããªã±ã¼ã·ã§ã³ã§ããè¤æ°ã®ã¹ã¬ããã使ç¨ããå©ç¹ãããã¾ãã ã¹ã¬ããã®å¶éã¹ã¬ããã® CPU ã¬ã¸ã¹ã¿ã®ç¶æ ãã¹ã±ã¸ã¥ã¼ãªã³ã°ã®åªå é ä½ããªã½ã¼ã¹ä½¿ç¨ã®ã¢ã«ã¦ã³ãã£ã³ã°ãªã©ãã¹ã¬ããã«é¢ããåºæ¬çãªæ å ±ã«å ãã¦ãåã¹ã¬ããã«ã¯ãã¹ã¿ãã¯ã¨å¼ã°ãããããã»ã¹ã®ã¢ãã¬ã¹ç©ºéã®ä¸é¨ãå²ãå½ã¦ããã¾ããã¹ã¬ããã¯ãããã°ã©ã ã³ã¼ãã®å®è¡æã«ã¹ã¿ãã¯ãã¹ã¯ã©ãã ã¹ãã¬ã¼ã¸ã¨ãã¦ä½¿ç¨ãã¦ã颿°ã®ãã©ã¡ã¼ã¿ã¼ã渡ãããããã¼ã«ã«å¤æ°ãä¿æãããã颿°ã®ãªã¿ã¼ã³ ã¢ãã¬ã¹ãä¿åãããã§ãã¾ããã·ã¹ãã ã®ä»®æ³ã¡ã¢ãªã浪費ãããªãããã«ãå½åã¯ã¹ã¿ãã¯ã®ä¸é¨ã ããå²ãå½ã¦ãã (ã¤ã¾ãã³ããããã)ãæ®ãã¯åã«äºç´ããã¾ããã¹ã¿ãã¯ã¯ã¡ã¢ãªå ãä¸ã«åãã£ã¦å¢å¤§ããã®ã§ãã·ã¹ãã ã¯ã¹ã¿ãã¯ã®ã³ããããããé¨åã®ä¸ã«ãã¢ã¯ã»ã¹æã«è¿½å ã¡ã¢ãªã®èªåã³ããã (ã¹ã¿ãã¯æ¡å¼µã¨å¼ã°ãã) ãããªã¬ã¼ããã¬ã¼ã ãã¼ã¸ãé ç½®ãã¾ãããã®å³ã¯ãã¹ã¿ãã¯ã®ã³ãããæ¸ã¿é åã䏿¹åã«å¢å¤§ããã¹ã¿ãã¯æ¡å¼µæã«ã¬ã¼ã ãã¼ã¸ãç§»åããæ§åãã32 ããã ã¢ãã¬ã¹ç©ºéã®ä¾ã§ç¤ºãã¦ãã¾ã (å³ã®æ¯çã¯å¤§ã¾ããªãã®ã§ã)ã å³ 1 å®è¡å¯è½ã¤ã¡ã¼ã¸ã® PE (ç§»æ¤å¯è½ãªå®è¡å¯è½ãã¡ã¤ã«) ã®æ§é ã«ãã£ã¦ãã¹ã¬ãã ã¹ã¿ãã¯ç¨ã«äºç´ããæåã«ã³ããããããã¢ãã¬ã¹ç©ºéã®éãæå®ããã¾ãããªã³ã«ã¼ã®æ¢å®ã®è¨å®ã§ã¯ã1 MB ãäºç´ããã1 ãã¼ã¸ (4 K) ãã³ãããããã¾ãããéçºè ã¯ããã°ã©ã ããªã³ã¯ããéã« PE å¤ã夿´ããããã¾ãã¯åã ã®ã¹ã¬ããã«ã¤ã㦠CreateThread (è±èª) ãå¼ã³åºããã¨ã«ãã£ã¦ããããã®å¤ããªã¼ãã¼ã©ã¤ããããã¨ãã§ãã¾ããVisual Studio ã«ä»å±ãã Dumpbin (è±èª) ãªã©ã®ãã¼ã«ã使ç¨ãã¦ãå®è¡å¯è½ãã¡ã¤ã«ã®è¨å®ã確èªã§ãã¾ããæ°ãã Visual Studio ããã¸ã§ã¯ãã§çæãããå®è¡å¯è½ãã¡ã¤ã«ã«ã¤ãã¦ã/headers ãªãã·ã§ã³ãæå®ãã¦å®è¡ãã Dumpbin ã®åºåã以ä¸ã«ç¤ºãã¾ãã å³ 2 16 鲿°ã®æ°å¤ã夿ããã¨ãã¹ã¿ãã¯ã®äºç´ãµã¤ãºã 1 MBãåæã³ãããã 4 K ã§ãããã¨ãããããæ°ãã Sysinternals ã® VMMap (è±èª) ãã¼ã«ã使ç¨ãã¦ãã®ããã»ã¹ã«ã¢ã¿ãããããã®ã¢ãã¬ã¹ç©ºéã表示ããã¨ãã¹ã¬ãã ã¹ã¿ãã¯ã®åæã³ãããæ¸ã¿ãã¼ã¸ãã¬ã¼ã ãã¼ã¸ãããã³æ®ãã®äºç´æ¸ã¿ã¹ã¿ã㯠ã¡ã¢ãªã確èªã§ãã¾ãã å³ 3 åã¹ã¬ããã¯ããããããã»ã¹ã®ã¢ãã¬ã¹ç©ºéã®ä¸é¨ãæ¶è²»ããã®ã§ãããã»ã¹ã使ã§ããã¹ã¬ããæ°ã®åºæ¬çãªå¶éã¯ãã¢ãã¬ã¹ç©ºéã®ãµã¤ãºãã¹ã¬ãã ã¹ã¿ãã¯ã®ãµã¤ãºã§é¤ç®ããå¤ã«ãã£ã¦æ±ºã¾ãã¾ãã 32 ããã ã¹ã¬ããã®å¶éããã»ã¹ã«ã³ã¼ãããã¼ã¿ããªããã¢ãã¬ã¹ç©ºéå ¨ä½ãã¹ã¿ãã¯ã¨ãã¦ä½¿ç¨ã§ããå ´åã§ããæ¢å®ã®ã¢ãã¬ã¹ç©ºéã 2 GB ã§ãã 32 ãããã®ããã»ã¹ã§ã¯ã使ã§ããã¹ã¬ããæ°ã¯æå¤§ã§ 2,048 ã§ãã32 ãããç Windows ã§ã-t ã¹ã¤ãã (ã¹ã¬ããã®ä½æ) ãæå®ã㦠Testlimit (è±èª) ãã¼ã«ãå®è¡ããã¹ã¬ããæ°ã®å¶éã確èªããå ´åãåºåã¯æ¬¡ã®ããã«ãªãã¾ãã å³ 4 ç¹°ãè¿ãã¾ãããã¢ãã¬ã¹ç©ºéã®ä¸é¨ã¯æ¢ã«ã³ã¼ããåæãã¼ãã«ãã£ã¦ä½¿ç¨ããã¦ããã®ã§ã2 GB ã®ãã¹ã¦ãã¹ã¬ãã ã¹ã¿ãã¯ã¨ãã¦ä½¿ç¨ã§ããããã§ã¯ãªãã使ãããã¹ã¬ããã®ç·æ°ã¯çè«çãªå¶éã§ãã 2,048 ã«ã¯åã³ã¾ããã Testlimit å®è¡å¯è½ãã¡ã¤ã«ã¯ã大容éã®ã¢ãã¬ã¹ç©ºéã«å¯¾å¿ãããªãã·ã§ã³ãæå®ãã¦ãªã³ã¯ãã¾ãããã¤ã¾ãã2 GB ãè¶ ããã¢ãã¬ã¹ç©ºéãããå ´å (ãã¨ãã°ã32 ããã ã·ã¹ãã ã Boot.ini ã® /3GB ã¾ã㯠/USERVA ãªãã·ã§ã³ãæå®ãã¦ãã¼ãããå ´åããVista ããã³ãã以éã® increaseuserva ã§ããã«ç¸å½ãã BCD ãªãã·ã§ã³ãæå®ãã¦ãã¼ãããå ´å)ããã®ã¢ãã¬ã¹ç©ºéã使ç¨ã§ãã¾ãã32 ãããçããã»ã¹ã 64 ãããç Windows ã§å®è¡ããå ´åã4 GB ã®ã¢ãã¬ã¹ç©ºéãä¸ãããã¾ããã32 ãããã® Testlimit ã 64 ãããç Windows ä¸ã§å®è¡ãããã¨ãã«ä½æã§ããã¹ã¬ããã®æ°ã¯ããã¤ã§ãããããããã¾ã§ã®èª¬æã«å¾ãã¨ãçãã¯ç´ 4096 (4 GB ã 1 MB ã§å²ã£ãå¤) ã§ããããã®æ°åã¯å®éã«ã¯ãã£ã¨å°ãããªãã¾ãã32 ãããã® Testlimit ã 64 ãããç Windows XP ã§å®è¡ããå ´åã®ä¾ã以ä¸ã«ç¤ºãã¾ãã å³ 5 ãã®ãããªå·®ãçºçããã®ã¯ã64 ãããç Windows ã§ 32 ããã ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ããã¨ãå®éã«ã¯ 64 ãããã®ããã»ã¹ãã32 ãããã®ã¹ã¬ããã§ã¯ãªã 64 ãããã®ã³ã¼ããå®è¡ããããã§ãããã®çµæã64 ããã ã¹ã¬ãã ã¹ã¿ãã¯ã¨ 32 ããã ã¹ã¬ãã ã¹ã¿ãã¯ã®é åãåã¹ã¬ããç¨ã«äºç´ããã¾ãã64 ããã ã¹ã¿ãã¯ã«ã¯ 256 K ãäºç´ããã¾ã (ãã ããVista 以åã®ã·ã¹ãã ã§ã¯ãåæã¹ã¬ããã® 64 ããã ã¹ã¿ãã¯ã¯ 1 MB ã§ã)ãå 32 ããã ã¹ã¬ããã¯ãæåãã 64 ããã ã¢ã¼ãã§å®è¡ãããã®ã§ãéå§æã«ä½¿ç¨ãã¦ããã¹ã¿ãã¯ç©ºéã 1 ãã¼ã¸ãè¶ ããã¨ãä¸è¬çã«ã64 ããã ã¹ã¿ãã¯ã®ãã¡å°ãªãã¨ã 16 KB ãã³ãããããããã¨ããããã¾ãã32 ããã ã¹ã¬ããã® 64 ãããããã³ 32 ãããã®ã¹ã¿ãã¯ã®ä¾ã以ä¸ã«ç¤ºãã¾ã ("Wow64" ã¨ããã©ãã«ã®ã¹ã¿ãã¯ã¯ã32 ããã ã¹ã¿ãã¯ã§ã)ã å³ 6 32 ãããã® Testlimit ã¯ãåã¹ã¬ãããã¹ã¿ãã¯ç¨ã« 1 MB + 256 K ã®ã¢ãã¬ã¹ç©ºéã使ç¨ããã¨ä»®å®ããå ´åã64 ãããç Windows ã§ã¯ 3,204 ã®ã¹ã¬ããã使ã§ãã¾ãã (Vista 以åã®ãã¼ã¸ã§ã³ã® Windows ã§å®è¡ããæåã®ä¾ã§ã¯ã1 MB + 1 MB ã使ç¨ãããã®ã§ä¾å¤ã§ã)ãããã¯äºæ³ã©ããã®çµæã§ãããããããã32 ãããã® Testlimit ã 64 ãããçã® Windows 7 ã§å®è¡ããå ´åã®çµæã¯ãããã¨ã¯ç°ãªãã¾ãã å³ 7 Windows XP ã§ã®çµæã¨ Windows 7 ã§ã®çµæã®éãã¯ãWindows Vista ã§å°å ¥ããã ASLR (Address Space Layout Randomization) ã«ãã£ã¦ã¢ãã¬ã¹ç©ºéã®ã¬ã¤ã¢ã¦ããããã©ã³ãã ã«ãªã£ãããæçåãçºçããããã§ããDLL ã®èªã¿è¾¼ã¿ãã¹ã¬ãã ã¹ã¿ãã¯ããã¼ãã®é ç½®ã®ã©ã³ãã åã¯ããã«ã¦ã§ã¢ã«ããã³ã¼ã ã¤ã³ã¸ã§ã¯ã·ã§ã³ã®é²æ¢ã«å½¹ç«ã¡ã¾ããæ¬¡ã® VMMap ã®åºåãããããããã«ã357 MB ã®ã¢ãã¬ã¹ç©ºéãã¾ã 使ç¨å¯è½ã§ãããæå¤§ç©ºããããã¯ã®ãµã¤ãºã¯ 128 K ã§ããã32 ããã ã¹ã¿ãã¯ã§å¿ è¦ãª 1 MB ãããå°ãããªã£ã¦ãã¾ãã å³ 8 åã«èª¬æããããã«ãéçºè ã¯æ¢å®ã®ã¹ã¿ãã¯äºç´ããªã¼ãã¼ã©ã¤ãã§ãã¾ãããã®ããã«ããçç±ã® 1 ã¤ã«ãã¹ã¬ããã®ã¹ã¿ãã¯ä½¿ç¨éãå¸¸ã«æ¢å®ã® 1 MB ãããå¤§å¹ ã«å°ãªãå ´åã«ã¢ãã¬ã¹ç©ºéãæµªè²»ãããªãããã«ãããã¨ãããã¾ããTestlimit ã§ã¯ãPE ã¤ã¡ã¼ã¸å ã®æ¢å®ã®ã¹ã¿ãã¯äºç´ãµã¤ãºã¯ 64 K ã«è¨å®ããã¦ããã-n ã¹ã¤ããã¨å ±ã« -t ã¹ã¤ãããæå®ããã¨ã64 K ã®ã¹ã¿ãã¯ãæã¤ã¹ã¬ããã使ããã¾ãã256 MB ã® RAM ãæè¼ãã 32 ãããç Windows XP ã·ã¹ãã ã§ã®åºåã以ä¸ã«ç¤ºãã¾ã (ãã®å®é¨ãå°è¦æ¨¡ãªã·ã¹ãã ã§å®è¡ããã®ã¯ããã®åºæã®å¶éã強調ããããã§ã)ã å³ 9 ã¢ãã¬ã¹ç©ºéã«ä½ãåé¡ããªãã®ã«ãå¥ã®ã¨ã©ã¼ããããã¨ã«æ³¨æãã¦ãã ãããå®éã64 K ã¹ã¿ãã¯ã®å ´åãç´ 32,000 ã®ã¹ã¬ãã (2 GB/64 K = 32,768) ã使ã§ããã¯ãã§ãããã®å ´åã¯ä½ãå¶éã«ãªã£ã¦ããã®ã§ãããããã³ãããããã¼ã«ãªã©åå ã«ãªããããªé ç®ãè¦ã¦ãããã¹ã¦å¶é夿ªæºãªã®ã§ããã®åé¡ãè§£ãéµã¯ãªãããã§ãã å³ 10 ã«ã¼ãã« ãããã¬ã¼ã§è¿½å ã®ã¡ã¢ãªæ å ±ã調ã¹ã¦åãã¦ã常é§å©ç¨å¯è½ã¡ã¢ãªããã¹ã¦ä½¿ç¨ããããããå¤ã«éãã¦ãããã¨ããããã¾ãã å³ 11 常é§å©ç¨å¯è½ã¡ã¢ãªã¯ãRAM ã«ä¿æãã¦ããå¿ è¦ããããã¼ã¿ãã³ã¼ãã«å²ãå½ã¦ããã¨ãã§ããç©çã¡ã¢ãªã§ãããã¨ãã°ãéãã¼ã¸ ãã¼ã«ãéãã¼ã¸ ãã©ã¤ãã¼ã¯ãããã¤ã¹ I/O å¦çç¨ã« RAM å ã§ããã¯ãããã¡ã¢ãªã¨åæ§ã«ã常é§å©ç¨å¯è½ã¡ã¢ãªã«å¯¾ãã¦ä¸å©ã«åãã¾ããåã¹ã¬ããã«ã¯ãããã¾ã§ã«èª¬æãã¦ããã¦ã¼ã¶ã¼ ã¢ã¼ã ã¹ã¿ãã¯ã¨ãã·ã¹ãã ã³ã¼ã«ã®å®è¡æãªã©ã«ã¼ãã« ã¢ã¼ãã§å®è¡ãããã¨ãã«ä½¿ç¨ãããã«ã¼ãã« ã¢ã¼ã ã¹ã¿ãã¯ãããã¾ããã¹ã¬ãããã¢ã¯ãã£ãã§ããå ´åããã®ã«ã¼ãã« ã¹ã¿ãã¯ã¯ã¡ã¢ãªå ã§ããã¯ãããã®ã§ãã¹ã¬ããããã¼ã¸ ãã©ã¼ã«ããåå¾ããªãã«ã¼ãã«å ã§ã³ã¼ããå®è¡ã§ãã¾ãã åºæ¬çãªã«ã¼ãã« ã¹ã¿ãã¯ã¯ã32 ãããç Windows ã§ã¯ 12 Kã64 ãããç Windows ã§ã¯ 24 K ã§ãã14,225 åã®ã¹ã¬ããã§ã¯ç´ 170 MB ã®å¸¸é§å©ç¨å¯è½ã¡ã¢ãªãå¿ è¦ã«ãªããããã¯ãTestlimit ãå®è¡ãã¦ããªãã¨ãã®ããã®ã·ã¹ãã ã®ç©ºã容éã¨çãããªãã¾ãã å³ 12 常é§å©ç¨å¯è½ã¡ã¢ãªã®ä¸éã«éããã¨ãå¤ãã®åºæ¬çãªå¦çãã¨ã©ã¼ã«ãªãå§ãã¾ãããã¹ã¯ãããã® Internet Explorer ã®ã·ã§ã¼ãã«ãããããã«ã¯ãªãã¯ããã¨ãã®ã¨ã©ã¼ã®ä¾ã以ä¸ã«ç¤ºãã¾ãã å³ 13 äºæ³ã©ããã256 MB ã®RAM ã® 64 ãããç Windows ã§å®è¡ããå ´åãTestlimit ã§ä½æã§ããã¹ã¬ãã㯠6,600 ã«éãã¾ãããããã¯ã256 MB ã® RAM ã® 32 ãããç Windows ã§ã常é§å©ç¨å¯è½ã¡ã¢ãªãä¸è¶³ããåã®ç´ååã§ãã å³ 14 åã« "åºæ¬" ã«ã¼ãã« ã¹ã¿ãã¯ã¨è¿°ã¹ãçç±ã¯ãã°ã©ãã£ãã¯é¢æ°ãã¦ã£ã³ãã¦é¢æ°ãå®è¡ããã¹ã¬ããã®å ´åã¯ãæåã®å¼ã³åºããå®è¡ããã¨ãã«ã32 ãããç Windows ã§ã¯ 20 Kã64 ãããç Windows ã§ã¯ 48 K ã¨ãã大ããªã¹ã¿ãã¯ãåå¾ãããããã§ããTestlimit ã®ã¹ã¬ããã¯ãã®ãã㪠API ãå¼ã³åºããªãã®ã§ãåºæ¬ã«ã¼ãã« ã¹ã¿ãã¯ãæã¡ã¾ãã 64 ããã ã¹ã¬ããã®å¶é32 ããã ã¹ã¬ããã¨åæ§ã64 ããã ã¹ã¬ããã§ãæ¢å®ã§ 1 MB ãã¹ã¿ãã¯ã¨ãã¦äºç´ããã¾ããã64 ããã ããã»ã¹ã®ã¦ã¼ã¶ã¼ ã¢ã¼ã ã¢ãã¬ã¹ç©ºéã¯ãã£ã¨å¤§ãã (8 TB) ã®ã§ãå¤ãã®ã¹ã¬ããã使ããå ´åã«ã¢ãã¬ã¹ç©ºéã¯åé¡ã«ãªãã¾ããããã ãã常é§å©ç¨å¯è½ã¡ã¢ãªã¯ãæããã«æ½å¨çãªå¶éè¦å ã«ãªãã¾ãã64 ãããçã® Testlimit (Testlimit64.exe) ã§ã¯ã256 MB ã® 64 ãããç Windows XP ã·ã¹ãã ã§ã-n ã¹ã¤ãããä»ããå ´åããä»ããªãã£ãå ´åãã使ã§ããã¹ã¬ããæ°ã¯ç´ 6,600 ã§ã32 ãããçã§ä½æã§ããæ°ã¨åãã§ããããã¯ã常é§å©ç¨å¯è½ã¡ã¢ãªã®å¶éãããããã§ãããã ãã2 GB ã® RAM ãæè¼ããã·ã¹ãã ã§ã¯ãTestlimit 64 ã§ä½æã§ããã¹ã¬ããæ°ã¯ 55,000 ã«éããã常é§å©ç¨å¯è½ã¡ã¢ãªãå¶éè¦å ã§ããå ´åã«ä½æã§ããã¯ãã®ã¹ã¬ããæ° (2 GB/24 K = 89,000) ãããªãä¸åã£ã¦ãã¾ãã å³ 15 ãã®å ´åãã·ã¹ãã ã®ä»®æ³ã¡ã¢ãªãä¸è¶³ãã"ãã¼ã¸ã³ã° ãã¡ã¤ã«ãå°ãããã" ã¨ããã¨ã©ã¼ãçºçããåå ã¯åæã¹ã¬ãã ã¹ã¿ãã¯ã®ã³ãããå¤ã§ããã³ããã ã¬ãã«ã RAM ã®ãµã¤ãºã«éããã¨ãã¹ã¬ãã使ã®é度ã¯é常ã«é ããªãã¾ããããã¯ãã·ã¹ãã ã§ã¹ã©ãã·ã³ã°ãçºçããããæ°ããã¹ã¬ããã®ã¹ã¿ãã¯ç¨ã®é åã確ä¿ããããã«ã以åã«ä½æããã¹ã¬ãã ã¹ã¿ãã¯ã®ãã¼ã¸ ã¢ã¦ããçºçãããããã¨å ±ã«ããã¼ã¸ã³ã° ãã¡ã¤ã«ãæ¡å¼µããå¿ è¦ãããããã§ãããã®çµæã¯ã-n ã¹ã¤ãããæå®ããå ´åãåãã§ããã¹ã¬ããã®åæã¹ã¿ã㯠ã³ãããå¤ã¯åãã ããã§ãã ããã»ã¹ã®å¶éWindows ã§ãµãã¼ããããããã»ã¹ã®æ°ã¯ãæããã«ã¹ã¬ããæ°ãããå°ãªããªãã¾ããããã¯ãåããã»ã¹ã«ã¯ 1 ã¤ã®ã¹ã¬ããããããããã»ã¹èªä½ãä»ã®ãªã½ã¼ã¹ã使ç¨ããããã§ãã2 GB ã® RAM ãæè¼ãã 64 ãããç Windows XP ã·ã¹ãã ã§ 32 ãããç Testlimit ãå®è¡ããå ´åãç´ 8,400 ã®ããã»ã¹ã使ããã¾ããã å³ 16 ã«ã¼ãã« ãããã¬ã¼ã§èª¿ã¹ãã¨ã常é§å©ç¨å¯è½ã¡ã¢ãªã®å¶éã«éãã¦ãããã¨ããããã¾ãã å³ 17 常é§å©ç¨å¯è½ã¡ã¢ãªã«é¢ããããã»ã¹ã®ã³ã¹ããã«ã¼ãã« ã¢ã¼ã ã¹ã¬ãã ã¹ã¿ãã¯ã®ã¿ã§ããå ´åãTestlimit 㯠2 GB ã®ã·ã¹ãã ã§ã¯ 8,400 ãããã¯ããã«å¤ãã®ã¹ã¬ããã使ã§ããã¯ãã§ããTestlimit ãå®è¡ãã¦ããªãå ´åããã®ã·ã¹ãã ã®å¸¸é§å©ç¨å¯è½ã¡ã¢ãªã®å®¹é㯠1.9 GB ã§ãã å³ 18 Testlimit ã使ç¨ãã¦ãã常é§ã¡ã¢ãªã®å®¹é (1.9 GB) ãã使ãããããã»ã¹ã®æ° (8,400) ã§å²ãã¨ãããã»ã¹ãããã®å¸¸é§ã¡ã¢ãªã¯ 230 K ã§ãããã¨ããããã¾ãã64 ãããã®ã«ã¼ãã« ã¹ã¿ãã¯ã¯ 24 K ãªã®ã§ãç´ 206 K ã®ä½¿ãéãã¾ã 䏿ãªã¾ã¾ã§ããã³ã¹ãã®æ®ãã®é¨åã¯ã©ãããçºçãã¦ããã®ã§ãããããããã»ã¹ã使ããã¨ãã«ãWindows ã¯ããã»ã¹ã®æå°ã¯ã¼ãã³ã° ã»ãã ãµã¤ãºã«å¯¾å¿ã§ããã ãã®ååãªç©çã¡ã¢ãªãäºç´ãã¾ããããã«ãã£ã¦ãã©ã®ãããªå ´åã§ããæå°ã¯ã¼ãã³ã° ã»ãããæºããã®ã«ååãªãã¼ã¿ãä¿æããã ãã®ç©çã¡ã¢ãªãå©ç¨ã§ãããã¨ãããã»ã¹ã«å¯¾ãã¦ä¿è¨¼ããã¾ããæ¢å®ã®ã¯ã¼ãã³ã° ã»ãã ãµã¤ãºã¯ 200 KB ã§ããããã®ãã¨ã¯ Process Explorer ã®è¡¨ç¤ºã§ [Minimum Working Set] åã追å ããã¨ç¢ºèªã§ãã¾ãã å³ 19 æ®ãã®ããã 6 K ã¯ãããã»ã¹ã表ãããã«å²ãå½ã¦ããã追å ã®éãã¼ã¸å¯è½ã¡ã¢ãªã¨ãã¦å å½ããã常é§å©ç¨å¯è½ã¡ã¢ãªã§ãã32 ãããç Windows ä¸ã®ããã»ã¹ã§ã¯ãã«ã¼ãã« ã¢ã¼ã ã¹ã¬ãã ã¹ã¿ãã¯ãå°ããããã使ç¨ããã常é§ã¡ã¢ãªã¯è¥å¹²å°ãªããªãã¾ãã ã¦ã¼ã¶ã¼ ã¢ã¼ã ã¹ã¬ãã ã¹ã¿ãã¯ã®å ´åã¨åæ§ã«ãããã»ã¹ã¯æ¢å®ã®ã¯ã¼ãã³ã° ã»ãã ãµã¤ãºããSetProcessWorkingSetSize (è±èª) 颿°ã使ç¨ãã¦ãªã¼ãã¼ã©ã¤ãã§ãã¾ããTestlimit ã§ã¯ã-n ã¹ã¤ãã㨠-p ã¹ã¤ãããçµã¿åããã¦æå®ãããã¨ã§ãã¡ã¤ã³ã® Testlimit ããã»ã¹ã®åããã»ã¹ã§ãã¯ã¼ãã³ã° ã»ãããæå°å¤ã® 80 K ã«è¨å®ãããããã«ãªãã¾ããã¯ã¼ãã³ã° ã»ããã縮å°ããããã«åããã»ã¹ãå®è¡ããå¿ è¦ãããã®ã§ãTestlimit ã¯æ°ããããã»ã¹ã使ã§ããªããªãã¨ãããä¸åº¦åããã»ã¹ãå®è¡ã§ããããã«ããããã«ãã¹ãªã¼ãç¶æ ã«ãªãã¾ãã4 GB ã® RAM ãæè¼ãã Windows 7 ã·ã¹ãã ã§ã-n ã¹ã¤ãããæå®ã㦠Testlimit ãå®è¡ããã¨ãã·ã¹ãã ã³ãããå¶éã¨å¼ã°ããã常é§å©ç¨å¯è½ã¡ã¢ãªä»¥å¤ã®å¶éã®å½±é¿ãåãã¾ãã å³ 20 次ã®ã«ã¼ãã« ãããã¬ã¼ã®ã¬ãã¼ããè¦ãã¨ãã·ã¹ãã ã³ãããå¶éã«éãã¦ããã ãã§ã¯ãªããæ°ååã®ã¡ã¢ãªå²ãå½ã¦ã¨ã©ã¼ããä»®æ³ããã³ãã¼ã¸ ãã¼ã«ã®å²ãå½ã¦ã®ä¸¡æ¹ã§çºçãããã®å¾ã³ãããå¶éã«éãã¦ãããã¨ããããã¾ã (ãã¼ã¸ã³ã° ãã¡ã¤ã«ããã£ã±ãã«ãªãã¨ãå¶éãå¼ãä¸ããããã®ã§ãå®éã«ã¯æ°åãã·ã¹ãã ã³ãããå¶éã«å°éãã¦ãã¾ã)ã å³ 21 Testlimit ãå®è¡ããåã®æçµçãªã³ãããå¤ã¯ç´ 1.5 GB ã§ãã£ãã®ã§ãã¹ã¬ããã¯ç´ 8 GB ã®ã³ãããæ¸ã¿ã¡ã¢ãªãæ¶è²»ãã¦ãã¾ãããããã£ã¦ãåããã»ã¹ã¯ããã 8 GB/6,600ãã¤ã¾ã 1.2 MB ãæ¶è²»ãã¦ãã¾ããã«ã¼ãã« ãããã¬ã¼ã® !vm ã³ãã³ã (ã¢ã¯ãã£ã ããã»ã¹ãã¨ã«å²ãå½ã¦ããããã©ã¤ãã¼ã ã¡ã¢ãªã示ã) ã®åºåã¯ããã®è¨ç®ãè£ä»ãã¦ãã¾ãã å³ 22 åã«èª¬æããåæã¹ã¬ãã ã¹ã¿ãã¯ã®ã³ãããå¤ã®æ®ãã¯ãããã»ã¹ ã¢ãã¬ã¹ç©ºéã®ãã¼ã¿æ§é ããã¼ã¸ ãã¼ãã« ã¨ã³ããªããã³ãã« ãã¼ãã«ãããã»ã¹ ãªãã¸ã§ã¯ããã¹ã¬ãã ãªãã¸ã§ã¯ããããã³ããã»ã¹ãåæåæã«ä½æãããã©ã¤ãã¼ã ãã¼ã¿ãå¿ è¦ã¨ããã¡ã¢ãªã«ç±æ¥ãã¾ããããã®å½±é¿ã¯ãããããã§ãã ã¹ã¬ããã¨ããã»ã¹ã®ååãªæ°ã¨ã¯"Windows ã§ã¯ããã¤ã®ã¹ã¬ããããµãã¼ããããã" ããã³ "Windows ã§ã¯ããã¤ã®ããã»ã¹ãåæã«å®è¡ã§ããã" ã¨ããåãã«å¯¾ããçãã¯ãç¶æ³ã«ãã£ã¦ç°ãªãã¾ããã¹ã¬ãããã¹ã¿ã㯠ãµã¤ãºãæå®ããæ¹æ³ãããã»ã¹ãæå°ã¯ã¼ãã³ã° ã»ãããæå®ããæ¹æ³ã®å¾®å¦ãªå·®ç°ã«å ãã¦ãç¹å®ã®ã·ã¹ãã ã§ãã®çãã«å½±é¿ãã主ãªè¦å ã¨ãã¦ãç©çã¡ã¢ãªã®å®¹éã¨ã·ã¹ãã ã³ãããå¶éã® 2 ã¤ãããã¾ãããããã®å ´åããã¢ããªã±ã¼ã·ã§ã³ã使ããã¹ã¬ããã¾ãã¯ããã»ã¹ã®æ°ããããã®å¶éã«è¿ãå ´åã¯ãåççãªæ°ã§åãç®æ¨ãéæã§ããå¥ã®æ¹æ³ãåå¨ãã¦ããå ´åãã»ã¨ãã©ãªã®ã§ãã¢ããªã±ã¼ã·ã§ã³ã®ãã¶ã¤ã³ãåèããå¿ è¦ãããã¾ãããã¨ãã°ãã¹ã±ã¼ã©ãã«ãªã¢ããªã±ã¼ã·ã§ã³ã®ä¸è¬çãªç®æ¨ã¯ãå®è¡ä¸ã®ã¹ã¬ããã®æ°ã CPU (NUMA ã§ã¯ããããã¼ããã¨ã® CPU ã¨è¦ãªãããã«å¤æ´ãã¦ãã) ã®æ°ã¨çãããªãããã«ãããã¨ã§ããããããå®ç¾ããæ¹æ³ã® 1 ã¤ã¨ãã¦ã¯ãåæ I/O ã®ä½¿ç¨ããéåæ I/O ã®ä½¿ç¨ã«å¤æ´ããI/O å®äºãã¼ããå©ç¨ãããã¨ã«ãã£ã¦ãå®è¡ä¸ã®ã¹ã¬ããã®æ°ã¨ CPU ã®æ°ãåãã«ãããã¨ãã§ãã¾ãã å ¬é: 2009 å¹´ 7 æ 8 æ¥æ°´ææ¥ 10:21 AM æç¨¿è : markrussinovich (è±èª) ãã¼ã¸ã®ããã㸠|
å ±æããã°ã«ã³ãã¼: ([Ctrl] + [C] ã§ã³ãã¼ãã¦ãã ãã) |
注æ
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãµã¤ã³ã¤ã³ã¾ãã¯ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã
ãã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ è¦ã§ãã ãã£ã¬ã¯ããªã®å¤æ´ã試ããã¨ãã§ãã¾ãã