ASP.Net Worker Process Memory Profile Tools

2019-03-21 13:30发布

We have a fairly high volume ASP.Net site written in c# using MS commerce server, running in a 32-bit environment. I see the worker process up to 980 megabytes quite often. I would like to profile this process and determine where any gains could be made in code to reduce the memory foot print of this site. My question what tools have worked well for you doing this sort of thing on ASP.Net web applications?

I am looking for tools that will give me very specific feedback, that will really help to clearly see what needs to change in the code. It would be best if this tool could profile our production environment worker process for a more concrete set of data to compare.

[edit]

So far it seems the consensus is that it's a toss up between Ants and JetBrains. Has anyone used both? If so which one was superior, or what are the pros and cons of each?

7条回答
欢心
3楼-- · 2019-03-21 13:38

There's a free way.

  • launch the task manager
  • right-click the w3wp process
  • select "create dump" (I'm amazed how few people know about this feature)
  • copy the dump file to your local machine (so we don't bother the production server)
  • open the file in Visual Studio
  • enjoy
  • select "Debug Managed memory" for advanced view which class uses memory etc.

AFAIK, the above requires Visual Studio "Ultimate" edition (I guess its called "Enterprise" now?). If you don't have one, then follow these steps (very simple too)

  • launch WinDbg (free tool, part of Windows SDK, there are tons of answers here on StackOverflow on how to download WinDbg without all the SDK bloatware)
  • Press Ctrl + D and load the dump file into WinDbg
  • type .loadby sos clr (this will load SOS.dll that allows WinDbg to analyze .NET processes, SOS.dll is a part of NET Framework so you probably already have it)
  • type !dumpheap -stat (this will output the class names, sorted by memory usage, ascending order. Skip system.string and system.byte[] classes cause these are side-effects, not the cause...)
查看更多
地球回转人心会变
4楼-- · 2019-03-21 13:40

dotTrace from JetBrains saved me several times. It is not free (trial is available), but it is really powerfull!

查看更多
放我归山
5楼-- · 2019-03-21 13:40

We use AviCode, and it works pretty good for us.

查看更多
我想做一个坏孩纸
6楼-- · 2019-03-21 13:44

Something like ANTS memory profiler might be useful to you.

查看更多
神经病院院长
7楼-- · 2019-03-21 13:50

Also consider AQTime from Automated QA.

查看更多
登录 后发表回答