私たちのアプリケーションは、特定のユーザーのコンピューターで失敗していますERROR_NOT_ENOUGH_MEMORY
(「このコマンドを処理するのに十分なストレージがありません」)。
エラーは、使用しているDelphi VCLフレームワークのどこかで発生しているようです。そのため、どのWindowsAPI関数が原因であるかわかりません。
メモリは問題ですか? を呼び出すとGlobalMemoryStatus
、次の情報が得られます。
- dwTotalPhys-1063150000(〜1 GB)
- dwAvailPhys-26735000(〜27 MB)
- dwAvailPage-1489000000(〜1.4 GB)
ページングファイルに十分なスペースがある場合にWindowsが使用可能な物理メモリを非常に少なくするのは奇妙に思えますが、Windowsの仮想メモリ管理については、これが正常かどうかを知るのに十分な知識がありません。それは...ですか?
メモリでない場合、どのリソース制限に達していますか?私がオンラインで読んだものからERROR_NOT_ENOUGH_MEMORY
、アプリケーションがいくつかの制限(GDIオブジェクト、USERオブジェクト、ハンドルなど)のいずれかに達した結果である可能性があり、必ずしもメモリではありません。Windowsが適用する制限の包括的なリストはありますか?どの制限に達しているかを確認する方法はありますか?Googleを試しましたが、体系的な概要が見つかりませんでした。