我们有一个相当大容量的 ASP.Net 站点,它使用 c# 编写,使用 MS 商务服务器,在 32 位环境中运行。我经常看到工作进程高达 980 兆字节。我想对这个过程进行概要分析,并确定可以在代码中获得任何 yield 以减少该站点的内存占用。我的问题是什么工具对你在 ASP.Net Web 应用程序上做这种事情效果很好?
我正在寻找能够给我非常具体的反馈的工具,这将真正有助于清楚地了解代码中需要更改的内容。如果此工具能够分析我们的生产环境工作进程,以获得一组更具体的数据进行比较,那将是最好的。
[编辑]
到目前为止,似乎一致认为这是 Ants 和 JetBrains 之间的折腾。有人用过两者吗?如果是这样,哪一个更好,或者每个人的优缺点是什么?
最佳答案
有一种免费的方式。
AFAIK,以上需要 Visual Studio“终极”版(我猜它现在被称为“企业”?)。如果您没有,请按照以下步骤操作(也很简单)
.loadby sos clr
(这将加载允许 WinDbg 分析 .NET 进程的 SOS.dll,SOS.dll 是 NET Framework 的一部分,因此您可能已经拥有它)!dumpheap -stat
(这将输出类名,按内存使用情况排序,升序。跳过 system.string
和 system.byte[]
类,因为这些是副作用,而不是原因......)2019 年更新:WinDbg 现在可通过 MS Store 获得,只需搜索“WinDbg”,然后点击几下即可。
关于ASP.Net Worker 进程内存配置文件工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/988997/