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

я есть приложение, которое обрабатывает большое количество мелких объектов, например, 2000 сообщений в секунду. Одно сообщение составляет примерно 100 байт, может быть, меньше. Приложение работало в течение 6 с половиной часов под нагрузкой и за это время оно имело 264 416 0го коллекции поколений, 166 699 1улица ген и 69 608 2й поколения. Это 11,6, 7,3 и 3 коллекции в секунду соответственно.

Вопрос в том, как сделать сборку мусора менее частой?

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

У меня сложилось впечатление, что GC должен адаптироваться и увеличивать размер генерации через некоторое время, но это явно не тот случай.

UPD 2: как предложено вответ леппи GC в режиме сервера действительно собирает в 10 раз меньше. Также кажется (как описывает это Рихтер), что частые коллекции - не плохая вещь.

Ответы на вопрос(6)

Ваш ответ на вопрос