Is there a way to retrieve a C# app's current memory usage?

Jeremy picture Jeremy · Jan 20, 2009 · Viewed 18.2k times · Source

I am automating some profiling tasks and want to log heap space and generation sizes real-time. The profiling API seems awfully complicated for what I need, and it seems to listen in on individual allocations and collections, which isn't that important to me. Profiling tools are a great help of course, but I was looking for a more flexible, programmable interface.

Answer

Mehrdad Afshari picture Mehrdad Afshari · Jan 20, 2009

The term 'current memory usage' is a little loosely defined. Do you mean the working set? Whatever it means, you can use different properties such as VirtualMemorySize, WorkingSet, PrivateMemorySize, etc. from the process class to retrieve it.

long workingSet = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;