我的Delphi6程序崩潰,因爲TotalAddrSpace(THeapStatus)在某個點達到2GB級別,並且崩潰。我已經能夠增加4GB級別的限制(使用{$ SetPEFlags $ 20}),但這隻會延遲最終的崩潰。我的Delphi6程序崩潰,因爲TotalUncommitted內存不斷增加
的問題是,所述TotalUncommitted存儲器保持某種原因增加,而TotalCommitted存儲器以及還有TotalAllocated存儲器很好地在可接受的水平(大約550 MB)穩定。
我不明白爲什麼TotalUncommitted內存不斷增加,並最終使TotalAddrSpace達到2GB(現在:4GB)級別和程序崩潰。
在程序我使用許多動態數組,其長度我增加或經由SetLength命令簡單的調整經常降低。這種以這種方式定期增加/減少動態數組是否會有效地導致TotalUncommitted內存的增加超出界限?
非常感謝您的任何建議或見解。
另外,如果你知道一個通用的機制以某種方式積極降低TotalUncommitted內存...
也許你受[堆碎片](http://stackoverflow.com/a/2569754/800214)? – whosrdaddy
這可能發生的原因很多。我們嘗試列出所有這些並不現實。可能這個問題是不合適的 - 太寬泛。 –