【发布时间】:2011-06-16 19:39:15
【问题描述】:
我正在使用内存分析器、dotTrace 和 perfmon 计数器对 C# 应用程序中的内存进行分析。我无法回答的一个问题是:垃圾收集在我的应用程序中导致的最大延迟是多少?我可以通过使用垃圾收集中的 % time 来获得一个近似值,但是有没有办法为单个收集计时?
【问题讨论】:
-
哪个 .NET 版本?您的应用程序中有多少个线程?它做任何 I/O 吗? GC 可能不会导致您任何延迟。我假设“延迟”是指您的程序因为等待 GC 完成而没有做任何有用的事情的时间?
-
是的,这就是我所说的延迟。我对理论答案并不感兴趣,而是对可以测量它的方法感兴趣。或者更确切地说,有没有比 (GCt1-GTt0) * GC 中的 % time 更好的方法来测量垃圾收集延迟,其中 t=time?还是因为错误率高于值,所以测量 GC gen#0 没有用?
标签: .net garbage-collection profiling