Использование памяти несколько сложнее, чем отображение одного или двух чисел.Я предлагаю вам взглянуть на превосходный пост Марка Руссиновича о различных видах счетчиков в Windows.
.NET только еще больше усложняет ситуацию.Процесс .NET - это просто еще один процесс Windows, поэтому, очевидно, он будет иметь все обычные метрики, но в дополнение к этому CLR выступает в качестве диспетчера памяти для управляемого приложения.Так что в зависимости от точки зрения эти цифры будут различаться.
Среда CLR эффективно выделяет и освобождает виртуальную память большими порциями от имени приложения .NET, а затем при необходимости передает биты памяти приложению.Таким образом, в то время как ваше приложение может использовать очень мало памяти в данный момент времени, эта память может быть или не быть освобождена для ОС.
Кроме того, сам CLR использует память для загрузки IL, компиляции IL в собственный код, хранения всей информации о типах и так далее.Все это увеличивает объем используемой памяти.
Если вы хотите узнать, сколько памяти ваше управляемое приложение использует для данных, счетчик байтов во всех кучах полезен.Частные байты могут использоваться в качестве приблизительной оценки использования памяти приложением на уровне процесса.
Вы также можете проверить следующие связанные вопросы:
Сокращение использования памяти приложениями .NET?
Как определить, гдеУтечка памяти есть?