Win2k SP4を使用しています。タスクマネージャーで、ハンドル数をみていると15800を超えたあたりから新しいウィンドウが開けなくなる(ポップアップメニューも開かなくなる)など不具合が発生しだします。
ウィンドウを1枚閉じると、別の1枚が開けるというような状態です。
ハンドル数が、15000以上に達するのもなにか問題をかかえているのかもしれませんが、ある一定値を超えると動作に不都合がでだしますので、なんらかのハンドル数の上限があると考えています。
この上限を増やす方法はありますでしょうか?
ヒープの枯渇を起こしているように見受けます。以下のレジストリが効果あるかも知れません。
@IT:Windows TIPS -- Caution:原因不明のメモリ不足エラーに対処する方法(デスクトップ・アプリケーション・ヒープ不足エラーに対処する方法)
http://www.atmarkit.co.jp/fwin2k/win2ktips/071desktopheap/deskto...
# リソースリークを起こすようなアプリケーションがあるとすぐに枯渇しますね。
GDIの使いすぎと思います。
上限は増やせないと思います。
アプリのつくりを変更必要があると思います。
GDI不足
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...
http://www.msdn.net/library/default.asp?url=/library/en-us/dllpr...
GDI Objectの制限
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\
CurrentVersion\Windows\
ProcessHandleQuita
GDIProcessHandleQuita
https://powersoft.ashisuto.co.jp/technicalservice/techdocument/t...
回答ありがとうございます。
PowerSoftのドキュメントが大変参考になりました。(まだ全部理解していないですが)
GDIオブジェクトなども含めた諸々のハンドルの合計がハンドル数に制限されているのかと思ったのですが、そうでもないのですね。
また、デスクトップヒープ自体の合計が48Mbyteというのは初めてしりました。
ProcessExplorerで、GDI,USERオブジェクトの数を表示するようにして経過をみています。
回答ありがとうございます。
デスクトップヒープを3Mから4Mに変更してみました。これで様子をみてみます。