2010-11-18 2 views
1

Я создаю веб-искатель в .Net, который выполняет около 500 URL-запросов за раз. Все работает нормально, но проблема возникает в некоторых случаях; Похоже, поток сборок мусора берет на себя всю паузу приложения на несколько секунд. В любом случае, это уменьшает задержку, вызванную GC.GC Приостанавливает полную активность приложения

ответ

1

Guidance on how to avoid GC problems in .Net

Чтобы получить лучшее из распределителя вы должны рассмотреть такую ​​практику, как следующего:

  • Выделяет всю память (или как можно больше), чтобы быть используется с заданной структурой данных .
  • Удалите временные ассигнования, которых можно избежать с небольшим штрафом .
  • Свести к минимуму количество указателей на объекты, которые записываются, особенно те, что сделаны для старых объектов.
  • Уменьшите плотность указателей в структурах данных.
  • Используйте ограниченное использование финализаторов, а затем только на «листовых» объектах, например . Перерыв объектов, если необходимо для этого.

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

Вы можете request a GC в какой-то более удобное время, которое может уменьшить паузы позже

Также обратите внимание на соответствующие вопросы StackOverflow справа - есть некоторые значимые из них есть ----->

Смежные вопросы