ASP.Net工作进程内存配置文件工具

时间:2009-06-12 20:55:17

标签: asp.net memory profiling worker-process

我们有一个相当大量的ASP.Net网站,使用MS商务服务器在c#中编写,在32位环境中运行。我看到工作人员经常处理高达980兆字节。我想简要介绍一下这个过程,并确定在代码中可以获得哪些收益以减少此站点的内存占用量。我的问题是什么工具在ASP.Net Web应用程序上做这种事情时效果很好?

我正在寻找可以给我非常具体的反馈的工具,这将有助于清楚地看到代码中需要更改的内容。最好是这个工具可以描述我们的生产环境工作者流程,以便比较更具体的数据集。

[编辑]

到目前为止,似乎共识是这是蚂蚁和JetBrains之间的折腾。有人用过吗?如果是这样哪个优先,或者每个优点和缺点是什么?

7 个答案:

答案 0 :(得分:7)

ANTS Profiler非常擅长分析ASP.NET应用程序。

答案 1 :(得分:7)

有一种免费的方式。

  • 启动任务管理器
  • 右键单击w3wp进程
  • 选择“创建转储”(我很惊讶很少有人知道这个功能 - 包括我自己在某个时候!)
  • 将转储文件复制到本地计算机(因此我们不打扰生产服务器)
  • 在Visual Studio中打开文件
  • 享受
  • 为高级视图选择“Debug Managed memory”,该类使用内存等。

AFAIK,上面需要Visual Studio“Ultimate”版本(我猜它现在叫做“Enterprise”?)。如果您没有,请按照以下步骤操作(非常简单)

  • 启动WinDbg(免费工具,Windows SDK的一部分,StackOverflow上有很多关于如何在没有所有SDK英国媒体报道软件的情况下下载WinDbg的答案)
  • 按Ctrl + D并将转储文件加载到WinDbg
  • type .loadby sos clr(这将加载允许WinDbg分析.NET进程的SOS.dll,SOS.dll是.NET Framework的一部分,所以你可能已经拥有它了)
  • type !dumpheap -stat(这将输出类名,按内存使用情况,升序排序。跳过system.stringsystem.byte[]类导致这些是副作用,而不是原因.. 。)

2019年更新:现在可通过MS Store购买WinDbg,只需搜索“WinDbg”,然后点击几下即可。

答案 2 :(得分:3)

答案 3 :(得分:1)

ANTS memory profiler之类的东西对你有用。

答案 4 :(得分:1)

还要考虑自动化质量保证中的AQTime

答案 5 :(得分:0)

我们使用AviCode,它对我们非常有用。

答案 6 :(得分:0)

来自JetBrains的dotTrace多次救了我。 它不是免费的(试用版),但它真的很强大!