2012-02-25 90 views
2

我的程序正在運行並創建變量,我需要知道這些變量需要的字節總數是多少。我怎麼看我的程序在吃多少內存?

我不想知道系統給我的程序執行的物理內存空間有多少,我知道我可以打開進程管理器並找出它。 我既不想寫入我的代碼的一些sizeof和agregations,所以我可以知道變量池的總大小(比方說代碼太複雜,不能修改那樣)。 最後,我使用的是Microsoft VC++ 2010 Express,我只想知道是否有工作區監視那種信息。

在此先感謝。

+1

見http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows。 – netcoder 2012-02-25 16:25:56

回答

4

查看結果:Memory Performance Information。您可能會感興趣的正在運行的流程的度量標準很少,您主要需要private bytes,這些數據可以通過編程方式或通過類似Performance Monitor的工具獲得。您還可以使用GetProcessHeaps(如果需要詳細信息,甚至可以使用HeapWalk)列舉整個過程的堆,並直接檢查堆分配大小。

0

Valgrind Massif分析器是一個很好的工具(見here),但僅限於Unix/Linux我認爲。在你的情況下,在Windows上,我認爲Insure++softwareverify是很好的選擇(它們是商業工具)。

免費的替代產品是谷歌的tcmalloc它提供了一個堆探查here

相關問題