.NET 垃圾收集器有几种模式。我想知道 Windows Server SKU 的默认模式是什么。如何确定 .NET 4 中当前的 Gabarge 收集器模式是什么?
2 回答
Niranjan 的回答包括更多相关细节,但我相信您的实际问题的答案是System.Runtime.GCSettings
.
它包括以下属性:
IsServerGC
- 指示是否启用服务器垃圾收集。LatencyMode
- 指示垃圾收集的当前延迟模式。
我建议您阅读 Chris Lyon 的 WebLog 文章 How To Tell which GC Mode Your Application Is Using和 Steven Hollidge 的Garbage Collector .NET 4。
在 .NET 4 中引入:背景 [和前景](仅限工作站)
从 .NET Framework 版本 4 开始,后台垃圾回收取代了并发垃圾回收。
此外,有关更多信息,您可以查看 Scott Hanselman 的Using the Server (instead of Workstation) Garbage Collector with the .NET Framework (CLR) 和这个 - Garbage Collection Modes - GCCollectionMode, Chris Lyon's - Server, Workstation and Concurrent GC
编辑:
Que:如何确定 .NET 4 中当前的 Gabarge Collector 模式是什么?
System.Environment.IsServerGC 应该用于检查服务器 GC,System.Runtime.GCSettings.IsServerGC
如果我们处于服务器 GC 模式,则返回 true,如果处于工作站模式,则返回 false。
问:Windows Server SKU 的默认模式是什么。
这Microsoft .NET Framework common language runtime (CLR) uses the Server garbage collector (GC) on multiprocessor computers.
是默认行为。服务器垃圾收集器针对多处理器计算机上的可扩展吞吐量进行了优化。为了减少争用并提高多处理器计算机上的垃圾收集器性能,服务器垃圾收集器为每个处理器创建一个堆用于并行收集。
已Workstation garbage collector
针对 进行了优化low latency
。客户端应用程序通常需要低延迟。但是,低延迟可能会在您配置.NET Framework common language runtime to use the Workstation garbage collector.