Я работал с настройкой производительности нашего сервера и попытался указать следующую конфигурацию, а также установить GCLatencyMode
на LowLatency
.
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<gcServer enabled="true"/>
<gcConcurrent enabled="false"/>
</runtime>
Это дало мне увеличение производительности, и я был очень доволен, пока коллега не указал, что эти два параметра являются взаимоисключающими в .Net 4.
Какая конфигурация будет решаться? Конечно, GCSettings.IsServerGC
возвращает true, и есть очень измеримое увеличение производительности от установки gcConcurrent
до false.
(Я скомпилировал код, который я профилировал в тестовый жгут, поэтому, хотя он обычно является сервером, обслуживаемым IIS, все мои тайминги были в консольном приложении)