作爲應用程序緩慢的解釋,有人報告說垃圾收集器在收集過程中佔用了17%的CPU。對我而言,這個統計數據聽起來毫不相關,因爲17%不會太擔心。此外,這是一個任意的度量標準,並沒有告訴我有關進程內存構成的任何信息。.NET垃圾收集器使用的CPU百分比是否是任何指標?
什麼會比較相關數據,我會喜歡的東西:
多少Gen 2件的藏品沒有我們?
讓我看看內存轉儲,讓我和它一起聚會回來給你。讓我看看heapstat(
!dumpheap -stat
從psscorX),同步塊等告訴我在緩慢的重週期的CPU使用率,所以我知道它不是一個I/O限制的問題,這是在哀求引入異步的成設計。
我們沒有多少垃圾收集有因爲我們推出嫌疑人的操作和有多少人是完全收集?
讓我看看LOH堆碎片。
告訴我非託管堆中,在這個過程中的自由空間,並通過託管堆佔據的總空間。
剖析代碼並查看需要花費的時間。然後再進行花費最多時間的操作。
但是垃圾收集運行持有的CPU利用率?這對我來說似乎不是一個相關的指標。
所以,我要求確認。
是GC使用的CPU的度量標準,當它只有17%時,這是一個相關的應用問題指標?
是否有預期的閾值的CPU利用率的GC通常應在以被認爲是一個很好的和健康的應用程序的正常收集合適?
我們正在討論在工作站版本的CLR上運行的進程。