[dba-Tech] .NET/Windows applications memory (leakage) and performance profilers

Salakhetdinov Shamil mcp2004 at mail.ru
Thu Dec 25 12:11:40 CST 2014


 Hi Gustav --

No, ANTS Memory Profiler isn't a "magic" - it's a tool. :)
It collects a few stats on running application/windows service/web service/....
These stats are presented in user friendly form when 'Take Memory Snapshot' functionality is activated.
You can take as many snapshots as you wish.
The main stats are Namespace, Class Name, Live size (bytes), Size Diff (bytes +/-), LIve Instances, Instances diff (+/-).
'Diff' stats are calculated for currently taken snapshot against base snapshot.
You can filter the stats using different filters, you can sort stats' records etc.
It's all rather intuitive - I have immediately found the custom class(es), which caused memory leakage issue for my case after running the app for several minutes and taking a few snapshots. But to find where the object instances actually leaked was not immediately clear as they were leaking in the .NET base library class, which I used improperly - I have been creating for testing purposed detached temp new rows for System.DataTable without adding them to the table instance Rows collection and I wasn't aware that these rows, which aren't present in the System.DataTable Rows collection are actually created internally and are held in an internal array - forever - imagine that! And my table was created on a main form/custom control module level, so it was never disposed - meet memory leakage...

Collected stats on live object instances can be also categorized to see what instances is holding the others from garbage collection. These live references are presented as object diagrams you can navigate easily.


AFAIS  ANTS Memory Profiler has filter with 'Show only classes with source' checkbox but I don't know  how these sources should be used. ANTS Memory profiler doesn't have code reverse engineering functionality so I suppose it cannot pinpoint problematic code if you profile an app without source. And ANTS Performance Profiler does have code reverse engineering finctionality - so it can pinpoint performance bottle-necks even without source code - but this is another story.

You'd better try ANTS Memory Profile - trying it isn't time consuming - and AFAIS setup has small sample applications to play with and very good docs.

Thank you.

-- Shamil


Thu, 25 Dec 2014 14:02:30 +0000 from Gustav Brock <gustav at cactus.dk>:
>Hi Shamil
>
>Thanks for the info. It seems like the extra bucks on ANTS would be well spent.
>
>How far does ANTS go? Does it pinpoint the problematic code? Will it even suggest how to fix it?
>
>I'm a bit disappointed that VS2013 Ultimate was of no use.
>
>/gustav
>
>________________________________________
>Fra:  dba-tech-bounces at databaseadvisors.com < dba-tech-bounces at databaseadvisors.com > p� vegne af Salakhetdinov Shamil < mcp2004 at mail.ru >
>Sendt: 24. december 2014 19:22
>Til: Discussion of Hardware and Software issues
>Emne: Re: [dba-Tech] .NET/Windows applications memory (leakage) and performance profilers
>
> Hi Gustav --
>
>Since yesterday I have been trying to use in trial mode one or another subject tool from my list - here are my results:
>
>1. GlowCode 9.2 - $499
>
>They didn't send me trial version's setup key. I have sent a message to their support e-mail address. No any replies yet.
>
>2. .NET Memory Profiler - $349
>
>Good one but user interface is a bit heavy to use, especially comparing with ANTS Memory Profiler.
>
>3. ANTS Memory Profiler - $619
>
>Ingeniously simple tool (as they say) - very user friendly, powerful enough, intuitive - no need to read any docs  - the best one for me currently.
>
>4. dotTRace ($249 or $599 within ReSharper Ultimate)
>
>Failed to setup (I have had previous version in trial mode, maybe it was an issue with my setup failure).
>
>5. .Net Memory Validator - $199.00
>
>It didn't work - my test application got stuck when this tool tried to profile its memory.
>
>6. CLR Profiler (v1.1) - free
>
>No 'free cheese' in this world - skipped testing
>
>7. Free within Visual Studio 2013 Ultimate Debugging Memory Leaks Using
>
>No 'free cheese' in this world - skipped testing.
>
>----------------------
>
>Using ANTS Memory Profiler I have solved two subtle memory leakage issues:
>
>- first one was an urgent customer request to fix - it was completed within several hours, without ANTS Memory Profiler it could have taken 'ages' to find the cause of this memory leakage issue.
>
>- second one was another application memory leakage fixing - it wasn't that urgent but anyway it was done within several hours.
>
>-----------------------
>
>Thank you.
>
>-- Shamil
>
>
>
>Mon, 22 Dec 2014 09:27:47 +0000 from Gustav Brock < gustav at cactus.dk >:
>>Hi Shamil
>>
>>No, I have only desktop applications running, so I can't add much.
>>However, I would love to learn about your experience.
>>
>>/gustav
>>
>>-----Oprindelig meddelelse-----
>>Fra:  dba-tech-bounces at databaseadvisors.com [mailto:dba-tech-bounces at databaseadvisors.com] P� vegne af Salakhetdinov Shamil
>>Sendt: 21. december 2014 21:39
>>Til: Discussion of Hardware and Software issues
>>Emne: Re: [dba-Tech] .NET/Windows applications memory (leakage) and performance profilers
>>
>>�Hi Gustav --
>>
>>I'm considering to choose and to purchase a commercial edition of a subject tool: it could be a good business opportunity to become memory leakages fixing/performance profiling/fixing expert/consultant armored with professional tools - a kind of "memory plumber" you know ;)
>>
>>Do you need one?
>>
>>-- Shamil
>>
>>Sat, 20 Dec 2014 09:32:23 +0000 from Gustav Brock <  gustav at cactus.dk >:
>>>Hi Shamil
>>>
>>>The only one I've heard of is ANTS but it doesn't say much as I've never had need for such tool.
>>>
>>>However, I believe the Visual Studio 2013 Ultimate will run for 90 days in non-registered mode, so that should give you amble time for debugging. If not, install it in a VM; after 90 days, delete and recreate the VM with a new install of VS. It's perfectly valid - in fact, if you watch some of the MVA courses, the instructors often run non-activated/registered Windows and software even though you would expect them to have access to all the licenses they could need.
>>>
>>>/gustav
>_______________________________________________
>dba-Tech mailing list
>dba-Tech at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/dba-tech
>Website:  http://www.databaseadvisors.com



More information about the dba-Tech mailing list