作为应用程序缓慢的解释,有人报告说垃圾收集器在收集过程中占用了17%的CPU。对我而言,这个统计数据听起来毫不相关,因为17%不会太担心。此外,这是一个任意的度量标准,并没有告诉我有关进程内存构成的任何信息。.NET垃圾收集器使用的CPU百分比是否是任何指标?
什么会比较相关数据,我会喜欢的东西:
多少Gen 2件的藏品没有我们?
让我看看内存转储,让我和它一起聚会回来给你。让我看看heapstat(
!dumpheap -stat
从psscorX),同步块等告诉我在缓慢的重周期的CPU使用率,所以我知道它不是一个I/O限制的问题,这是在哀求引入异步的成设计。
我们没有多少垃圾收集有因为我们推出嫌疑人的操作和有多少人是完全收集?
让我看看LOH堆碎片。
告诉我非托管堆中,在这个过程中的自由空间,并通过托管堆占据的总空间。
剖析代码并查看需要花费的时间。然后再进行花费最多时间的操作。
但是垃圾收集运行持有的CPU利用率?这对我来说似乎不是一个相关的指标。
所以,我要求确认。
是GC使用的CPU的度量标准,当它只有17%时,这是一个相关的应用问题指标?
是否有预期的阈值的CPU利用率的GC通常应在以被认为是一个很好的和健康的应用程序的正常收集合适?
我们正在讨论在工作站版本的CLR上运行的进程。