Use this forum for questions on how to use .NET Memory Profiler and how to analyse memory usage.
Nmpcore is an awesome utilty. However, there is a scenario where I would like it to not capture instance data. When our app has millions of objects in memory, it results ina very large snapshot dump. I was hoping that disabling some snapshot features, such as 'collect instance data' would reduce the saved session size. I've tried all of the command line options, including /iid- but it does not seem to work. Perhaps I am doing something wrong? Can you provide an example of proper usage?
This is what I tried:
NmpCore.exe /a myapp.exe /cs1 /iid- /sf e:\dump.prfsession
- Posts: 1028
- Joined: Wed Mar 02, 2005 7:53 pm
You are correct, even if you supply the /iid- command line option, the instance data are included in the session file. The profiler always keeps instance data for the last two snapshots, even if instance data should not be saved. Due to a bug, this instance data was always saved in the session file. We have now corrected this, but we have not yet released an official fix. You can download the pending release of NmpCore.exe from http://memprofiler.com/pending/NmpCore.exe
Unfortunately, the session files can become quite large, even if you exclude the instance data. Reference field data will still be included for each instance, as this data is needed to analyze how instances are related to each other and to present an instance graph. We do have some ideas on how to reduce the session file size, and hopefully the session files will be smaller in the next version.
SciTech Software AB
Thank you for the reply and the beta version. It still appears as though the instance data is collected, but, I am probably looking at the results wrong. I will play around with it some more next week and see what I can find.
I just noticed that I was using /iid0 in my tests. Maybe that was the difference. I will try it next week.
Users browsing this forum: No registered users and 17 guests