這是此問題的後續行動:What could explain the difference in memory usage reported by FastMM or GetProcessMemoryInfo?如何在Delphi應用程序中分析過多的內存消耗(PageFileUsage)?
我的Delphi XE應用程序正在使用非常大量的內存,有時會導致內存不足異常。我試圖理解爲什麼和什麼導致這種內存使用,而FastMM報告低內存使用情況,請求TProcessMemoryCounters.PageFileUsage時,我可以清楚地看到,應用程序使用了很多內存。
我想知道是什麼原因造成這個問題,並希望就如何處理它的一些提醒:
- 有沒有辦法知道什麼是包含在內存和它已被分配?
- 是否有一些工具可以通過Delphi應用程序中的行/過程跟蹤內存使用情況?
- 任何一般建議如何處理這樣的問題?
EDIT 1:下面是FastMMUsageTracker的兩個截圖,指示存儲器一直由系統分配。
- 前進程啓動:
- 過程結束後:
注:淺紅色的FastMM分配和深灰色我分配給系統。
我想了解是什麼導致系統使用這麼多內存。可能通過理解該內存中包含的內容或哪些代碼或過程確實會導致該分配。
編輯2:我寧可不使用完整版本AQTime的多種原因:
- 我使用多個虛擬機的發展正在和他們的許可制度是一個PITA(我已經TestComplete的註冊用戶)
- LITE版本不提供足夠的信息,也沒有留下一定的完整版本將會給我有價值的信息
任何其他SUG我不會浪費錢gestions?
這個問題的答案[Profiler和內存分析工具爲Delphi](http://stackoverflow.com/questions/291631/profiler-and-memory-analysis-tools-for-delphi)可以幫助你。 – RRUZ 2012-03-15 13:47:09
@RRUZ它看起來很有趣,但它看起來像所有答案都是「時間剖析器」相關的,並且幾乎沒有關於內存使用情況分析的信息 – jonjbar 2012-03-15 14:03:14
我會嘗試定期記錄由FastMM返回的值,以便從您的應用的不同位置代碼以及簡短的位置信息添加到日誌文件中。我正在研究一個通用工具(VisualMM),它也顯示時間線,請參閱http://mikejustin.wordpress.com/ – mjn 2012-03-18 09:34:01