Comments
1 comment
-
ANTS Profiler stores quite a lot of detail about the running program which does mean we can require a lot of memory in some circumstances. The main culprit is the data for individual stack timings: a .NET program can produce 5-10 million stack traces easily, which requires several hundred Mb to process as things stand. 600Mb is definitely on the high side, but not entirely unexpected for a reasonably complex Windows Forms application.
We do a couple of things to try to reduce the load: we simplify certain kinds of complex stack traces and we try to discard particularly irrelevant results (both these behaviours will be optional in the release version). We're not very aggressive with this, though as it's fairly hard to decide whether or not a particular result is interesting or not.
ANTS will only keep the data it needs in memory, so you will find if you select a time region the memory usage will usually go down. Using the 'only methods with source' profiling method will also reduce the memory requirements substantially.
Add comment
Please sign in to leave a comment.
From when I press the 'Stop' button I am seeing a huge increase in memory usage
http://www.usher.net.au/redgate/mem_issue/mem_issue.htm
you will see it climbs from 32mb up to over 900mb, then settles back down to over 600mb.
This was done in around 2mins of testing. I tried to use ProcessExplorer to see where the main usage is. Gen 0 - 6.2mb, Gen 1 - 7.9mb, but Gen 2 heap size is over 500mb.
Not sure if this is an issue or not, my VS.IDE is usually sitting around 600-700mb, so your results seem a little high.
do you load all code into the source classes ? if so, this would explain things (my app is large)
SIDEBAR: if you start using things like ProcessExplorer to interogate running .NET apps be careful, I suffered a nasty BSD whilst working on this one.