1

.net 垃圾收集不运行的条件是什么?高 CPU 使用率会阻止垃圾收集运行吗?

我正在使用 Visual 2010 .net 4 开发一个非常大的项目,我添加了项目的新部分,现在对其进行性能测试。在测试期间,我发现当我将客户端置于高负载下时,几乎 100% cpu 一直,内存就像有泄漏一样。经过多次测试但没有发现任何结果,我使用了 ANTS 分析器,发现比我每 5 分钟拍摄一次快照时,内存的行为像往常一样。ANTS 强制垃圾收集工作,所以我提出了一个问题,.net 垃圾收集在不中断应用程序运行的情况下在高 cpu 中不起作用吗?

4

1 回答 1

2

检查问题后,我得出的结论是高 CPU 导致 GC 无法正常工作。我每隔几分钟调用一次GC来测试它,内存保持在它应该的低水平(在程序的正常运行中)。在它之后,我将程序的主要瓶颈分叉到几个核心。cpu 下降,内存在 c# 和 .net 中再次表现良好 - 在恒定范围内上下波动。

于 2013-11-17T20:26:16.863 回答