我有一个大型的多线程C#应用程序,运行在多核心4路服务器上。目前我们正在使用"服务器模式"垃圾回收。然而测试表明,工作站模式GC更快。
MSDN说:
使用服务器优化的垃圾回收器(GC)而不是默认的工作站GC,从中获得了重要的好处。
工作站是默认的GC模式,也是单处理器计算机上唯一可用的模式。工作站GC托管在控制台和Windows窗体应用程序中。它会与正在运行的程序同时执行完整(第二代)集合,从而最小化延迟。此模式对于客户端应用程序非常有用,因为感知的性能通常比原始吞吐量更重要。
服务器GC仅适用于多处理器计算机。它为每个处理器创建单独的托管堆和线程,并并行执行收集。在收集期间,所有托管线程都会暂停(运行本地代码的线程仅在本地调用返回时暂停)。以这种方式,服务器GC模式可以最大化吞吐量(每秒请求数)并随着处理器数量的增加而提高性能。在拥有四个或更多处理器的计算机上,性能尤其出色。
但是我们没有看到性能突出!!! 有人有什么建议吗?