2011-01-10 25 views
2

我發現AQTime很難使用,因爲它太多地干擾了原始程序。如果我有一個使用例如300MB RAM的程序,我可以使用AQTime的分配分析器,而不會出現問題,並找出大部分內存正在被使用。但是我注意到,在AQTime下運行時,原始程序在分析時使用的更像1GB。如何在使用大量內存的程序中使用AQTime的內存分配分析器?

現在我試圖減少使用1.4GB內存的程序的內存使用量。如果我在AQTime下運行它,那麼原始程序將使用所有2GB地址空間和崩潰。我當然可以創建一個較小的測試數據集,並估計內存使用量如何隨整個數據集擴展 - 但我首先使用分析器的原因是爲了避免這種猜測。

我已經將AQTime設置爲「收集堆棧信息 - 無」,並且所有用於檢查內存完整性的複選框都已關閉,並且我試圖將正在分區的區域限制爲僅僅幾個類,但是這樣做並不會似乎沒有改善任何東西。有沒有辦法使用AQTime產生較小的開銷?或者說失敗了,還有什麼其他方法可以很好地理解正在使用的內存?

的應用程序是用德爾福2010年,我用AQTime 6.

注:上增加了內存使用情況的頂部,AQTime下運行減慢下來的應用程序非常多,使得整個演習不只是不可能但不切實際:-P

回答

0

AFAIK分配概要分析器將跟蹤內存塊分配,而不管分析區域如何。分析區域用於跟蹤類實例化。當然,分配大量內存的應用程序的內存分析是一個問題,您可以嘗試使用LARGE_ADRESS_AWARE標誌和/ 3GB引導開關,或使用64位系統(只要您至少有4GB的內存,或更多)。您也可以在崩潰之前對應用程序狀態進行快照,以查看內存分配的位置。分析需要時間,無論如何,你可能不得不讓它運行一段時間。