How do I see memory allocation in a given .NET application?

橙三吉。 提交于 2019-11-26 23:18:16

问题


I need to check how much memory is allocated in the heap. Is there a way to get this value programmatically with C#?

I know about the System.Runtime.InteropServices.Marshal.SizeOf(...) but that only tells me the size of an object.


回答1:


Using a PerformanceCounter you can query the "# Bytes in all Heaps", from your own process, and even other processes.

Use the Category ".Net CLR Memory" to see a lot of counters available.

You have to see what the difference in system load is between the PerformanceCounter and the GC.GetTotalMemory that is proposed by Jon Skeet.




回答2:


Does GC.GetTotalMemory do everything you need?

(Note that SizeOf only tells you the marshalled size, too - not necessarily the size in memory.)



来源:https://stackoverflow.com/questions/625465/how-do-i-see-memory-allocation-in-a-given-net-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!