2014-11-24 52 views
2

我在寫一個C++程序,它使用的內存比我預期的要多(例如通過Linux top命令測量);在這種情況下它很重要,因爲可用內存是程序功能的重要限制因素。有沒有辦法確定哪些數據結構(類或對象)會佔用多少內存使用量?哪些數據結構正在使用多少內存

也就是說,我當然可以換每個對象的代碼單獨跟蹤它的內存使用情況,但我不知道是否有使用現有的工具,如gdbvalgrind一個更加自動化的解決方案嗎?

+2

你可能在你的程序中有內存泄漏。用memecheck運行valgrind,這可能會有所幫助。 http://valgrind.org/docs/manual/mc-manual.html – Rush 2014-11-24 07:05:15

回答

0

在代碼中,您可以使用sizeof函數。

如果你需要一個工具,你可以在你最喜歡的搜索引擎上尋找「Profiling tool C++」。你會有很多結果。