有没有办法找到有多少内存用于特定的对象?例如一个列表。考虑所有事情,比如字符串实习,以及编译器/运行时环境/不管什么。C#:一个对象的内存使用情况
回答
你真的必须明确定义你的意思是“多少内存用于特定对象”。例如,你可能的意思是“如果这个对象被垃圾收集了,多少会被释放” - 或者你可能意思是“这个对象和它接触到的东西占用多少内存”。
您对字符串实习点就是一个很好的例子。假设你:
List<string> internedStrings = new List<string>();
List<string> nonInternedStrings = new List<string>();
for (int i=0; i < 1000; i++)
{
string tmp = new string(' ', i+1);
nonInternedStrings.Add(tmp);
tmp = tmp.Intern();
internedStrings.Add(tmp);
}
是否真的nonInternedStrings
占用更多的内存比internedStrings
?如果internedStrings
进行垃圾回收,它不会释放尽可能多的内存 - 但如果internedStrings
从未创建(不包括实习它的每个元素),那么永远也不会需要更多的内存。
如果您可以更具体地了解刚好您的意思是,我们可能会帮助您。但这是一个复杂的问题。
你试过CLR探查器2.0?
号应该也许尝试一个。虽然希望在代码中的东西。所以,我可以排序Console.WriteLine(MemoryUsageOf(someObject))之类的东西:对 – Svish 2009-02-17 08:40:01
这似乎是这个Delphi question的兄弟。朴素算法不会考虑聚合和组合之间的差异。即使是基于标记和扫描的算法也不会告诉你散列表是否必须增长其内部数组,因为对象是由它引用的。您可能更适合针对各种情况分析您的应用程序,并针对N绘制资源使用情况,其中N是您数据集规模的一些衡量标准。
ANTS Memory Profiler型材的.NET代码的存储器消耗。过去我已经有了很好的成绩。
- 1. 对象的内存使用情况
- 2. 记录一个对象的内存使用情况
- 3. C#:简单vs复杂对象和内存使用情况
- 4. Grails - 启动内存/内存使用情况/域对象
- 5. Objective-C内存使用情况
- 6. C++指针内存使用情况
- 7. Flash总内存使用情况和TaskManager内存使用情况不一样?
- 8. 如何计算对象的内存使用情况?
- 9. 计算Java中任何对象的总内存使用情况
- 10. 如何测量JavaScript对象的内存使用情况
- 11. ObjectiveC中指定对象的内存使用情况
- 12. 确定.NET中对象图的内存使用情况
- 13. JavaScript对象的内存使用情况和复杂性顺序
- 14. 如何测量python中对象的内存使用情况?
- 15. Pympler获取对象的内存使用情况
- 16. Tcl_Format内存使用情况
- 17. Silverlight内存使用情况
- 18. BlackBerry内存使用情况
- 19. php内存使用情况
- 20. iphone内存使用情况
- 21. IronPython内存使用情况
- 22. CCLabelBMFont内存使用情况
- 23. Android内存使用情况
- 24. GPUImage内存使用情况
- 25. Java内存使用情况
- 26. Linux内存使用情况
- 27. Listview内存使用情况
- 28. V8内存使用情况
- 29. 内存使用情况
- 30. java内存使用情况
Duplicated:http://stackoverflow.com/questions/426396/how-much-memory-does-ac-net-object-use – FerranB 2009-02-17 09:23:38
所以看起来...对不起'布特:) :) – Svish 2009-02-17 10:21:35