Измерение использования памяти в .Net - PullRequest
4 голосов
/ 04 июня 2010

Я пытаюсь получить программу, которую пишу (на F #, хотя я думаю, что ответ здесь один и тот же для любого языка CLR?), Чтобы сообщить об использовании собственной памяти (чтобы я мог получить представление о насколько я напрягаю машину, сравниваю размеры различных рабочих нагрузок и оцениваю эффективность любых оптимизаций, которые я делаю в надежде сэкономить память).

Хорошая новость заключается в том, что у класса Process достаточно статистики. http://msdn.microsoft.com/en-us/library/system.diagnostics.process_members.aspx

Тем не менее, существует очень много разных показателей использования памяти. Вот четыре из теста:

Peak paged memory size    13,492,224
Peak virtual memory size  138,661,888
Peak working set          14,188,544
Private memory size       13,492,224

И есть еще несколько доступных. Какая разница между ними? Какие из них являются лучшими ответами на вопрос «сколько памяти использовала программа на этом запуске, который она сейчас заканчивает?» И имеют ли те же цифры одинаковое значение для Mono в Linux или MacOS?

1 Ответ

1 голос
/ 26 июня 2010

Похоже, что для программы, пытающейся контролировать использование собственной памяти, лучше всего использовать GC.GetTotalMemory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...