我在運行時有一個靜態對象,基本上是其他對象(整數,字符串,字典,其他對象等)的列表。有沒有辦法在運行時確定我的靜態「其他對象列表」對象所使用的內存?這對於儀器和報告目的會很方便。.NET運行時對象的內存佔用情況如何?
6
A
回答
2
你可能會問的東西,你可以從你的代碼(這是我想太多知道)打電話,但我覺得我應該提到螞蟻的情況下,別人探查[http://www.red-gate.com/Products/ants_profiler/index.htm]是不是在找具體的東西。它會告訴你關於你的代碼的所有信息,包括正在使用多少內存。
從他們的網站...
檔案存儲,瞭解您 應用程序如何使用內存,並找到 內存泄漏。該內存分析器 可以讓你在你的 程序的執行任何 點拍攝快照,所以你可以看到什麼樣的內存是在這一點上使用 。您可以在不同時間拍攝 多個快照 而您的應用程序正在運行,所以 您可以比較應用程序內存 的狀態。
3
的sizeof可以在值類型中使用也有Marshal.SizeOf可與一些提示用於.NET:
不過...。那是不完全的總因爲運行時確實爲同步塊等事物分配了額外的字節。
如果你在衡量這種類型的東西很感興趣,但是,你應該使用分析API:
http://msdn.microsoft.com/en-us/library/ms404386.aspx
或者像的WinDbg,可以做各種美妙的事情一個免費的工具。
1
不是沒有探查器。僅僅爲了一個班而已經很難 - 參見here。
2
0
感謝您的回覆。我認爲我最初的攻擊計劃,因爲我相信大多數對象都是可序列化的,將會是這樣的:
using (MemoryStream memstream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
try
{
formatter.Serialize(memstream, myObjectOfObjects);
mem_footprint += memstream.Length;
}
catch
{
// not a serializable object
}
}
相關問題
- 1. 比較.Net和VB6應用程序的內存佔用情況
- 2. 如何查找iOS/Cocoa中集合對象的內存佔用情況
- 3. NSDictionary和NSArray的內存佔用情況
- 4. 對象的內存使用情況
- 5. 確定.NET中對象圖的內存使用情況
- 6. 如何計算對象的內存使用情況?
- 7. 如何測量python中對象的內存使用情況?
- 8. 限制.Net CLR內存使用情況
- 9. .NET模塊內存使用情況
- 10. 如何在不分配內存的情況下構造對象?
- 11. 如何在不分配內存的情況下測量.net應用程序的內存使用情況?
- 12. 計算Java中任何對象的總內存使用情況
- 13. C#.NET內存泄漏:GC階段#1和階段#2運行時的鋸齒內存使用情況
- 14. 標準Wurfl緩存怎麼樣 - 查看內存佔用情況
- 15. 如何在運行時確定一個C++對象的內存
- 16. 如何找出我的linux應用程序的內存佔用情況?
- 17. 如何評估rails應用程序中redis鍵值的內存佔用情況?
- 18. 一些常用Web框架的內存佔用情況如何比較?
- 19. 如何在僅在運行時知道類型的情況下創建對象?
- 20. Classic ASP中解析XML文件的內存佔用情況?
- 21. Haskell數據類型的內存佔用情況
- 22. 檢查Arduino中的內存佔用情況
- 23. 複雜頁面的SVG內存佔用情況
- 24. 通過接口調用對象的方法時的內存使用情況?
- 25. C#:一個對象的內存使用情況
- 26. JavaScript對象的內存使用情況和複雜性順序
- 27. Pympler獲取對象的內存使用情況
- 28. ObjectiveC中指定對象的內存使用情況
- 29. 如何測量內存使用情況
- 30. 如何分析內存使用情況?
我確實在尋找一個編程實現。但我同意螞蟻探查器可以在正確的情況下得心應手:) – Bullines 2008-10-21 20:38:55