Windows のデスクトップヒープ
Windows でアプリケーションを複数操作しているとメモリのエラーが出現したり、そのアプリケーションが起動できなくなるなどの現象が起きます。
たとえば、12,000 K のアプリケーションを 70 個ほど起動すると 71 個目は起動できなくなる。
Windows では、プロセスを起動する際に WIN 32 API の "CreateProcess" APIを利用します。(余談ですが、Unixシステムでは fork() にあたります。)このAPIには対話型と非対話型を選ぶことができます。このとき、非対話型だとデスクトップヒープに割り当てられるサイズは、概ね 512K と小さいためサーバー型のアプリケーションでは耐えうることができない可能性があります。(詳しくは調べていないが、サービスのログオンで対話型を指定することができるようです。)
ただし、スレッド型のアプリケーションの場合は、このヒープ領域に影響しないようである。
デスクトップヒープのサイズは 「Microsoft Support Professionals Toolkit for Windows」 の Desktop Heap Monitor を利用すれば調べることができます。
デスクトップヒープをレジストリで拡張(増やす)する場合はマイクロソフトのサポートページを参考に行うことでできます。
デスクトップ アプリケーションのヒープを増やす
User32.dll または Kernel32.dll の初期化に失敗する
SQL Server を実行しているコンピューターで多数のプロセスを実行すると予期しない現象が発生します。