我已经运行了一个ASP.NET应用程序,并且在生产环境中使用了约450MB RAM,但是它使用的不是太多,并且随着时间的流逝似乎在增加,因此似乎有泄漏或泄漏的危险。至少有一些东西没有被正确释放。

我查看了PerfMon,GC Gen2中有416MB。

任何人都有发现内存中保留的内容的想法吗?我能否只拿起dotTrace/ANTS并以某种方式将其附加到我的IIS(在Windows Server 2003上为6)-还是有更好的方法? :-)

谢谢。

最佳答案

观看Tess的this TecheEd演示文稿将是一个不错的开始。

她演示了如何使用adplus来转储消耗大量RAM的ASP.NET应用程序,然后将该转储加载到WinDbg中进行分析。在WinDbg中使用!gcroot命令查找意外的根并从那里开始。她建议不要在缓存或 session 中存储包含对其他对象的引用的复杂类型。

10-07 19:39