パスワードを忘れた? アカウント作成
508785 journal

Ab.の日記: ThinkPad は Desktop Heap が足りないのです

日記 by Ab.
どうも時々プログラムが起動しなかったり、変なエラーで起動途中に転けたり、メニューが伸びなかったりコントロールが足りてなかったりする事があって desktop heap が足りてないのだろうと思ったのでちょっと色々検索。
Microsoft Support Professionals Toolkit for Windows から Desktop Heap Monitor Version 8.1 を拾ってきました。
で、適当に展開してなんかそれらしい dheapinst.exe を実行したら win32k.sys のシンボルが無いよ、みたいなエラーで怒られてしまったのでさらに検索。
KB914216: Desktop Heap Monitor ツールのインストール時にエラー メッセージ "dheapinst - Win32k.sys symbol load error, correct symbol required" が表示される に載っていました。
シンボルをインストールしていなくても

dheapinst.exe -y srv*http://msdl.microsoft.com/download/symbols

とやればMicrosoft Symbol Server に直接アクセスして、正しいシンボルを入手しインストール出来るようです。
その後は

C:\dheapmon\x86>dheapmon -l
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation.  All rights reserved.
  Dheapmon - Driver loaded successfully

でドライバのロード、その後はサマリの表示

C:\dheapmon\x86>dheapmon
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation.  All rights reserved.
-------------------------------------------------------------
  Session ID:    0 Total Desktop: (  8384 KB -    8 desktops)

  WinStation\Desktop            Heap Size(KB)    Used Rate(%)
-------------------------------------------------------------
  WinSta0\User_Desktop0              3072              6.1
  WinSta0\Default                    3072             93.3
  WinSta0\Disconnect                   64              8.7
  WinSta0\Winlogon                    128             22.5
  Service-0x0-3e7$\Default            512             25.7
  Service-0x0-3e4$\Default            512              6.2
  Service-0x0-3e5$\Default            512              4.9
  SAWinSta\SADesktop                  512              0.5
-------------------------------------------------------------

とか、desktop や verbose 表示

C:\dheapmon\x86>dheapmon -v -d Default
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation.  All rights reserved.
-------------------------------------------------------------

  Windowstation: (WinSta0) SessionID: 0
  Desktop: (Default) Addr: bc6f0000

  Desktop Heap         3145728 (0x  300000) Bytes
  Committed            3141632 (0x  2ff000) Bytes
  Uncommitted             4096 (0x    1000) Bytes
  Allocated            2936568 (0x  2ccef8) Bytes
  Total Freed           205064 (0x   32108) Bytes
  Unused                209160 (0x   33108) Bytes
  Used Rate                    (      93.4) %
-------------------------------------------------------------

  Windowstation: (Service-0x0-3e7$) SessionID: 0
  Desktop: (Default) Addr: bc9f0000

  Desktop Heap          524288 (0x   80000) Bytes
  Committed             176128 (0x   2b000) Bytes
  Uncommitted           348160 (0x   55000) Bytes
  Allocated             134496 (0x   20d60) Bytes
  Total Freed            41632 (0x    a2a0) Bytes
  Unused                389792 (0x   5f2a0) Bytes
  Used Rate                    (      25.7) %
-------------------------------------------------------------

  Windowstation: (Service-0x0-3e4$) SessionID: 0
  Desktop: (Default) Addr: bca70000

  Desktop Heap          524288 (0x   80000) Bytes
  Committed              57344 (0x    e000) Bytes
  Uncommitted           466944 (0x   72000) Bytes
  Allocated              32512 (0x    7f00) Bytes
  Total Freed            24832 (0x    6100) Bytes
  Unused                491776 (0x   78100) Bytes
  Used Rate                    (       6.2) %
-------------------------------------------------------------

  Windowstation: (Service-0x0-3e5$) SessionID: 0
  Desktop: (Default) Addr: bcaf0000

  Desktop Heap          524288 (0x   80000) Bytes
  Committed              28672 (0x    7000) Bytes
  Uncommitted           495616 (0x   79000) Bytes
  Allocated              25808 (0x    64d0) Bytes
  Total Freed             2864 (0x     b30) Bytes
  Unused                498480 (0x   79b30) Bytes
  Used Rate                    (       4.9) %
-------------------------------------------------------------

も出来る模様。

で、見れば分かりますが WinSta0\Default が desktop heap を 93.3% まで使ってしまっています。
まぁ logon しただけで ThinkPad の常駐モノだけで20~30くらいプロセス走って、普通に使ってるだけでプロセス数が90を超えるので、へヴィーユーザーからは「これだからメーカーもののPCはダメなんだ!」と蛇蝎のごとく忌み嫌われるのも当然のような気がします。

もちろん desktop heap の空きをチェックしたのは理由があって、ぐぐるとすぐ出てくると思いますが、レジストリをいじると desktop heap の割り当ては増やせます。
具体的には HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows の SharedSection=1024,3072,512 の2番目のパラメータです。
とりあえずこれを 4096 に増やしてみようかな、と。
これから書き換えてリブートするけど、書き間違えて起動しなくなったら泣きます。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

ソースを見ろ -- ある4桁UID

読み込み中...