Очень сложно получить показатели по фактическому использованию памяти в .NET. Ближайшее приближение, которое вы можете получить, зависит от объекта, вызывая Marshal.SizeOf (). Насколько я понимаю, этот метод заключается в том, что он по существу измеряет размер сериализованной версии объекта, и объем памяти в памяти может быть близок к этому, но он не точен. Но это хорошая оценка.
Вы также можете исследовать API-интерфейсы SMS в .NET. Они предоставляют способы запрашивать различную статистику памяти из операционной системы о вашем процессе (или других процессах). Это та же библиотека, что используется "perfmon". Вы можете использовать это для программной проверки вашего процесса.
Кроме того, вы захотите инвестировать в хороший инструмент профилирования для .NET. Я оценил ANTS и dotTrace. Они оба очень хороши. Я предпочел dotTrace за его простоту. Большинство профилировщиков имеют очень неинтуитивные интерфейсы. Это то, чего я только что ожидал. dotTrace на самом деле довольно хорош, по этим стандартам. ANTS Я думаю, что, вероятно, более продвинутый (не уверен, только мое мнение из краткого eval, который я сделал на них обоих).