1
A
回答
2
valgrind --tool=massif
是正確的解決方案。它會給你所有關於哪個線程在什麼時間點使用多少內存的信息。
2
我認爲像IBM/Rational Purify或valgrind內存分析工具可能是你所需要的。
另外,如果你的程序在啓動時使用600MB,你應該首先檢查你的依賴庫正在做的,一旦他們得到加載。你甚至可能還沒有輸入main()
,但他們可能正在創建一些重量級的全局靜態對象,它們在事情開始之前就被初始化了。
另一件事要記住的是,每個線程會得到很多的分配給它一個它堆棧存儲器。它可能是一個兆字節或更多的線程,所以如果你自己創建600個線程,那麼600Mb已經消失了。
+0
是的,它確實是由依賴於... thx的庫引起的 – qiuxiafei 2011-04-07 14:00:07
相關問題
- 1. 有沒有辦法知道會話使用多少內存?
- 2. 有什麼方法可以知道ElementTree DOM消耗多少內存?
- 3. 有什麼方法可以知道NSUserNotificationCenter中有多少個NSUserNotifications?
- 4. 有沒有辦法以編程方式知道對象在內存中佔用了多少空間? (.Net 2.0)
- 5. Linux如何知道進程使用了多少物理內存?
- 6. 有沒有什麼辦法可以知道當前有多少用戶正在使用ColdFusion應用服務器
- 7. 我可以知道JavaScript中的函數調用使用了多少內存嗎?
- 8. 有什麼辦法可以知道調用者類名嗎?
- 9. 有什麼辦法可以知道DataGridViewCell是否可見?
- 10. 有什麼辦法可以知道報告是否有訂閱
- 11. MemoryCache如何知道它使用了多少內存?
- 12. 什麼決定了可以分配多少內存?
- 13. 有什麼方法可以知道自ajax調用init以來經過了多少秒鐘?
- 14. 有什麼方法可以知道何時處理了OnNext?
- 15. 有什麼辦法可以緩存ASIFormDataRequest?
- 16. 我不知道這個線程有什麼問題,我想了解多線程
- 17. 我可以在Linux內核v2.6中使用內核級線程,並且有什麼方法可以知道我的線程的線程級別嗎?
- 18. 如何知道我在一個進程中使用了多少內存? win32 C++
- 19. AppEngine(Python):我可以通過編程知道當前實例使用了多少內存?
- 20. 有沒有辦法測量一個shell命令使用了多少內存?
- 21. 有沒有辦法查看SciPy矩陣使用了多少內存?
- 22. 有沒有什麼辦法知道什麼時候安裝了crontab?
- 23. 有什麼辦法可以知道另一個應用程序是否改變了Cocoa的顯示分辨率?
- 24. 有沒有辦法查看變量使用多少內存?
- 25. 有沒有辦法知道我的應用程序目前有多少安裝?
- 26. 有沒有辦法知道當前有多少個webrole實例?
- 27. 有什麼方法可以知道什麼時候創建了一個對象?
- 28. 我的應用程序可以使用多少內存?或通常是什麼?
- 29. 找出線程使用了多少內存
- 30. 有什麼辦法可以從瀏覽器內部保存PDF?
第一個問題是:你怎麼知道它是使用600MB?你可能在看錯誤的東西。 – 2011-04-07 03:34:27
線程共享全局堆空間。一個線程的唯一本地數據是它的堆棧和線程局部變量。 – 2011-04-07 04:42:45