Среднее время в GC - PullRequest
       1

Среднее время в GC

1 голос
/ 23 марта 2012

Текущий% в GC легко отобразить в приложении .NET, но как вы можете показать среднее время в GC или общее время события в GC, чтобы вы могли пройти полный сценарий и измерить, действительно ли вы улучшили вещи???

% времени в ГХ определяется как:

"% времени в ГХ. Отображает процент времени, затраченного на сборку мусора с момента последнего цикла сбора мусора. Обычно этот счетчикуказывает работу, выполненную сборщиком мусора для сбора и сжатия памяти от имени приложения. Этот счетчик обновляется только в конце каждой сборки мусора. Этот счетчик не является средним; его значение отражает последнее наблюдаемое значение. "

Ответы [ 3 ]

2 голосов
/ 23 марта 2012

GC является недетерминированным. В связи с этим его трудно оптимизировать, поскольку вы получите разные результаты в зависимости от того, как долго работает ваше приложение и каков размер каждого поколения.

Более простой подход - и, честно говоря, гораздо более надежный - состоит в том, чтобы подсчитать количество объектов, которые вы создаете определенным методом. Помогут лучшие практики, такие как не создание объекта в цикле и т. Д.

2 голосов
/ 23 марта 2012

Если вы заинтересованы в измерении прошедшего времени, проведенного в ГХ, эти данные доступны через ETW. PerfMonitor будет собирать и отображать эти данные для вас - ознакомьтесь со статьей в журнале MSDN Magazine: http://msdn.microsoft.com/en-us/magazine/gg490356.aspx.

1 голос
/ 23 марта 2012

Некоторые версии Visual Studio имеют встроенный профилировщик.Есть также сторонние профилировщики, бесплатные и те, которые стоят денег.Профилировщик может показать, какой процент времени вы проводите в GC.

EDIT Существует несколько распространенных заблуждений относительно времени ЦП, затрачиваемого в любом старом потоке, включая поток GC.Например, можно заблокировать объект синхронизации, используемый потоком GC.В этом случае GC будет в режиме ожидания, но не будет измеримое количество процессорного времени.Эти сценарии трудно проверить без надлежащего инструментария.

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