对象的大小在内存
回答
对于值类型,使用sizeof(object value)
对于非托管对象使用Marshal.SizeOf(object obj)
遗憾的是上述两种不会得到你所引用对象的大小。
对于管理对象:有没有直接的办法让RAM的大小,他们使用的管理对象,请参见:http://blogs.msdn.com/cbrumme/archive/2003/04/15/51326.aspx
或替代方案:
System.GC.GetTotalMemory
long StopBytes = 0;
foo myFoo;
long StartBytes = System.GC.GetTotalMemory(true);
myFoo = new foo();
StopBytes = System.GC.GetTotalMemory(true);
GC.KeepAlive(myFoo); // This ensure a reference to object keeps object in memory
MessageBox.Show("Size is " + ((long)(StopBytes - StartBytes)).ToString());
来源:http://blogs.msdn.com/b/mab/archive/2006/04/24/582666.aspx
Profiler
使用探查器将是最好的。
似乎结果总是0上尝试这种代码时列表
注意:如果'new foo()'分配了其他的东西,这会给出不准确的结果,有时候是这样。 – 2017-01-29 22:31:28
您可以使用CLR Profiler看到分配大小为每种类型的(不特定对象)。也有一些商业产品,可以帮助您监视program.JetBrains内存dotTrace和展鹏Ants的使用是一些他们。
- 1. AS3:优化对象内存大小
- 2. 在PHP中获取对象的内存大小?
- 3. 如何在内存中获取对象大小?
- 4. 由sos.dll和内存中进程大小返回的对象大小不匹配
- 5. 估算memcached内Java对象的大小
- 6. 内存大小
- 7. 调整闪存对象的大小
- 8. SDWebImage缓存对象的大小
- 9. 内存对齐和结构的大小
- 10. JProfiler的内存视图 - >对象大小
- 11. 散列或其他对象的内存大小?
- 12. 估计/计算内存中对象大小的好方法
- 13. 在磁盘上存储大量不同大小的对象
- 14. 在大对象堆内存中预分配一些内存
- 15. .NET内存大小
- 16. 内存表大小
- 17. Sqlserver内存大小
- 18. 内存大小UIImageView
- 19. Java'Date'对象大小
- 20. JavaScript - 对象大小
- 21. 内存对齐到结构中 - 对齐大小等于最大成员大小
- 22. 允许的内存大小
- 23. 允许的内存大小
- 24. 允许的内存大小
- 25. Go中对象的大小
- 26. java.awt.Color对象的大小
- 27. Java对象的大小
- 28. 对象的大小序列
- 29. 在堆上分配的内存大小
- 30. 字段在内存中的NULL大小
使用[memory profiler](http://stackoverflow.com/search?q=%5Bc%23%5D+memory+profiler)。 – dtb 2012-02-17 07:24:34
已经有许多愚蠢。发帖前请先搜索。 [如何在内存中获取对象大小?](http://stackoverflow.com/questions/605621/how-to-get-object-size-in-memory)。而且还http://stackoverflow.com/questions/426396/how-much-memory-does-a-c-net-object-use。还http://www.google.com/#hl=zh-CN&sclient=psy-ab&q=.net+size+of+object+in+memory&pbx=1&oq=.net+size+of+object+in+memory&aq=f&aqi = G1&AQL = 1&gs_sm = 3&gs_upl = 987l6327l0l6549l29l20l0l9l9l5l2247l4909l9.7.0.3.9-1l29l0&BAV = on.2,or.r_gc.r_pw.r_qf。,cf.osb&FP = f0b85e3c6de8b9f9&BIW = 1440&波黑= 795 – 2012-02-17 07:31:20