TotalAddrSpace(THeapStatus)がクラッシュする2GBレベルに達したため、My Delphi6プログラムがクラッシュします。私は($ SetPEFlags $ 20を使って)4GBレベルの制限を増やすことができましたが、それは最終的なクラッシュを遅らせるだけです。TotalUncommittedメモリが増加し続けるため、My Delphi6プログラムがクラッシュする
TotalUncommittedメモリが何らかの理由で増加し続けているのに対して、TotalCommittedメモリとTotalAllocatedメモリも許容レベル(約550 MB)で安定しているという問題があります。
TotalUncommittedメモリが増加し続け、最終的にTotalAddrSpaceが2GB(現在は4GB)レベルに達し、プログラムがクラッシュする理由はわかりません。私は長さIが増加またははsetLengthコマンドを介して、簡単な調整と定期的に減少させる多くの動的配列を使用するプログラムで
。このように動的配列を定期的に増減することは、TotalUncommittedメモリの境界を越えて効果的に増加しますか?
アドバイスや洞察力は非常に高く評価されています。また
あなたが何らかの形で積極的にTotalUncommittedメモリを減少させる一般的なメカニズムを知っていれば...
あなたは[ヒープフラグメンテーション](http://stackoverflow.com/a/2569754/800214)の対象になる可能性がありますか? – whosrdaddy
これが起こる理由はたくさんあります。私たちがそれらをすべてリストアップしようとするのは現実的ではありません。おそらくこの質問はあまりフィットしない - 広すぎる。 –