Создает ли коллекция серверов отдельную кучу LOH для каждого ядра? C#

#c# #garbage-collection

#c# #сбор мусора

Вопрос:

Из исследования по сборке мусора, коллекция серверов позволяет создавать отдельный поток для каждого имеющегося у вас ядра процессора, который запускает отдельную кучу GC и Generational. Но я не смог найти ничего о том, получает ли каждый поток свою собственную кучу LOH или для каждого приложения есть только одна куча LOH

Комментарии:

1. При задании подробного технического вопроса важна терминология. Я наблюдал за тем, как вы используете «Коллекцию серверов» , пытаясь понять, о чем вы говорите (большинство коллекций не имеют ничего общего с LOH). Только когда появился ответ, я понял, что вы имели в виду систему сбора мусора на сервере

Ответ №1:

Интересный вопрос. Кажется, что он поддерживает кучу (маленькую и большую) для каждого процессора, но не для каждого потока. Что имеет большой смысл 🙂

Сборка мусора на рабочей станции и сервере

Сборщик данных сервера

Ниже приведены соображения о потоках и производительности для сборки мусора сервера:

  • Для каждого процессора предусмотрены куча и выделенный поток для выполнения сборки мусора, и кучи собираются одновременно. Каждая куча содержит небольшую кучу объектов и большую кучу объектов, и все кучи могут быть доступны с помощью пользовательского кода. Объекты в разных кучах могут ссылаться друг на друга.