如何在给定的.NET应用程序中查看内存分配?
-
05-07-2019 - |
题
我需要检查堆中分配了多少内存。有没有办法用C#编程获得这个值?
我知道 System.Runtime.InteropServices.Marshal.SizeOf(...)
,但这只能告诉我一个对象的大小。
解决方案
使用 PerformanceCounter ,您可以查询“ ; #Bages in the Heaps“,来自您自己的进程,甚至是其他进程。
使用类别“.Net CLR Memory”看到很多柜台可供使用。
你必须看看在Jon Skeet提出的PerformanceCounter和GC.GetTotalMemory之间系统负载的区别。
其他提示
GC.GetTotalMemory
做你需要的一切吗?
(请注意, SizeOf
也只会告诉您 marshalled 大小 - 不一定是内存中的大小。)
不隶属于 StackOverflow