我想查看服务中的内存泄漏问题。我试过以下一组perfmon计数器。
我在上面提到了here
还提到以下集:
我在上面提到了here
是否有任何参数/标准或任何其他最佳方法来识别内存泄漏的perfmon计数器? 任何人都可以建议我使用一组计数器来检查内存泄漏吗?或者上面的内容包括内存泄漏?
答案 0 :(得分:30)
要使用性能监视器检测内存泄漏,请监视这些计数器:
根据我的经验,这是准确的。
我还会将您推荐给微软员工Tess的Microsoft高级调试博客。谁建议以下柜台。我发现上述内容足以表明存在内存泄漏,但我相信Tess的指示可以提供更深入的洞察力。
Debugging Demos - Memory Review
答案 1 :(得分:4)
有更好的工具可以让内存泄漏测试变得更加容易,例如RedGate ANTS Memory Profiler和JetBrains dotMemory Profiler。
但是,如果要使用性能计数器, this article解释了如何使用性能计数器来测试内存泄漏。
请记住,垃圾收集在某些实例处置后不会立即释放内存。它已经过优化,只有在存在内存压力时才会触发和释放内存。因此,如果要测试内存泄漏,则应在执行计数器读数之前手动执行垃圾收集。
GC.Collect();
GC.WaitForPendingFinalizers();