Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 970
Spoike Avatar asked Jan 23 '23 19:01

Spoike


1 Answers

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.

like image 83
GvS Avatar answered Jan 26 '23 09:01

GvS