У меня есть большое многопоточное приложение С#, работающее на многоядерном четырехстороннем сервере. В настоящее время мы используем сборку мусора "режим сервера". Однако тестирование показало, что режим рабочей станции GC быстрее.
Приложения с управляемым кодом, использующие API-интерфейс сервера, получают значительные преимущества от использования сборщика мусора (GC), оптимизированного сервером, вместо GC рабочей станции по умолчанию.
Рабочая станция - это режим GC по умолчанию и единственный доступный на однопроцессорных компьютерах. Рабочая станция GC размещена в консольных приложениях Windows Forms. Он выполняет полную (генерацию 2) коллекции одновременно с запущенной программой, тем самым минимизируя задержку. Этот режим полезен для клиентских приложений, где воспринимаемая производительность обычно более важна, чем сырая пропускная способность.
Сервер GC доступен только на многопроцессорных компьютерах. Он создает отдельную управляемую кучу и поток для каждого процессора и выполняет коллекции параллельно. Во время сбора все управляемые потоки приостанавливаются (потоки, выполняющие собственный код, приостанавливаются только при возврате собственного вызова). Таким образом, режим GC сервера максимизирует пропускную способность (количество запросов в секунду) и повышает производительность по мере увеличения количества процессоров. Производительность особенно ярко проявляется на компьютерах с четырьмя или более процессорами.
Но мы не видим блеска производительности!!!! Кто-нибудь получил какие-либо советы?