Подтвердить что ты не робот

Опыт использования gcServer = "true" для установки сборщика мусора для .NET.

Кто-нибудь использовал конфигурацию, позволяющую сборщику мусора, оптимизированному для многопроцессорных машин, используя Aspnet.config с:

<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>

Было ли улучшение производительности вашего сайта?
Устранены ли какие-либо проблемы?

4b9b3361

Ответ 1

Во-первых, Concurrent и Server являются взаимоисключающими. См. это сообщение в блоге для получения подробной информации о неправильных представлениях GC сервера. Однако ASP.NET по умолчанию размещает сервер GC (см. Обсуждение Scott Hanselman), поэтому там не будет никакой разницы.

Я бы рекомендовал придерживаться сервера вместо параллельного для веб-сайта ASP.NET. Для приложения с пользовательским режимом одновременный GC был восприимчивым к пользователю, поскольку сервер gc вызовет "зависает".

Я использовал сервер GC и заметил значительные улучшения в определенных ситуациях.

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

Ответ 2

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

Ответ 3

(очень старый вопрос, я знаю, но я думал добавить это в любом случае)

Существует одно существенное различие между GC GC и Concurrent GC: GC сервера имеет по одному потоку на процессор и приостанавливает потоки этого процессора при выполнении коллекции, поток Concurrent GC сервера работает параллельно с другими потоками, т.е. нет подвеска. См. эту статью MSDN для получения дополнительной информации и более тонкие отличия.

В зависимости от времени, которое занимает цикл, это может существенно повлиять на отзывчивость вашего приложения, поэтому выбирайте разумно. В случае ASP.NET, у которого нет пользовательского интерфейса, GC сервера лучше (и по умолчанию).