.net垃圾回收无法运行的条件是什么?高CPU使用率是否会阻止垃圾收集运行?
我正在使用visual 2010 .net 4开展一个非常大的项目, 我添加了项目的新部分,现在正在进行性能测试。 在测试期间,我发现当我将客户端置于高负载,几乎100%的CPU时,内存就像泄漏一样。经过多次测试后发现我没有使用任何ANTS探测器,并且发现当我每5分钟拍摄一次快照时,记忆就像往常一样。 ANTS强制垃圾收集工作,所以我提出了问题, .net垃圾收集在高CPU中不起作用,不会中断应用程序运行吗?
答案 0 :(得分:2)
检查问题后,我得出结论,高CPU阻止GC正常工作。 我测试了它每隔几分钟调用GC,内存保持低位(正常运行程序)。之后,我将程序的主瓶颈分成几个核心。 cpu下降了,内存再次像c#和.net那样表现良好 - 在恒定范围内上下移动。