windows service + nhibernate - sharp architecture - memory l
本文关键字:architecture memory sharp windows nhibernate service | 更新日期: 2023-09-27 18:33:38
我有一个Windows服务,可以执行由时间触发的批量插入。我正在使用尖锐(contrib)架构和NHibernate。服务的内存消耗似乎随着时间的推移缓慢/线性上升。我想调查一下是什么原因造成的。任何人都可以如此友善并推荐一个工具吗?谢谢。
有商业探查器(ANTS Profiler,DotTrace等),还有优秀的SOS调试器扩展,你可以从Visual Studio或WinDbg使用。有很多关于如何使用 SOS 的文章。Tess Ferrandez的博客是关于调试的绝佳资源。
通常,您将使用与此类似的 SOS。首次运行:
!EEHeap
以检查堆的状态,然后
!dumpheap -stat
以查看泄漏对象的类型。从那里,您可以使用
!dumpheap -type <object type>
列出对象,然后
!gcroot <object address>
对于特定对象,查看哪些根使对象保持活动状态。
但是,在这种情况下,我总是从检查GC性能计数器开始,以了解泄漏模式,查看哪个堆正在增长等。