我正在对服务器进行性能调整,并尝试指定以下配置,以及将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托管的服务器,但我所有的时间都在控制台应用程序上)
最佳答案
我在这里找到了您的答案:
Latency Modes
因此,启用gcServer时,将自动禁用gcConcurrent。无需将gcConcurrent设置为禁用。 GCLatencymode以批处理模式运行,这可以提高性能。