What does <<UNLOADING> mean ?

Memory profiling for .NET developers

Moderators: Luke Jefferson, StephenC, AndrewH, melvyn.harbour, james.billings, Laura Morley, dene.boulton

What does <<UNLOADING> mean ?

Postby Bugmaster » Wed Feb 13, 2013 11:32 pm

I am trying to track down a nasty memory leask, and ANTS says that my objects are held in memory by:

Code: Select all
<<UNLOADING>.Crs.Threading.DbTaskExecutor`1.this_doWork()


What does this mean ? There's indeed a method in my code with such a name, but what does the "UNLOADING" prefix signify ?
Bugmaster
 
Posts: 7
Joined: Fri Feb 23, 2007 3:57 am

Postby Chris.Allen » Fri Feb 15, 2013 1:04 pm

Would you be willing to save your results and send them to us at:

support@red-gate.com?

with 'F69653' in the subject

I'll be able to get a clearer answer for you then.
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Re:

Postby Bugmaster » Fri Feb 15, 2013 8:22 pm

Chris.Allen wrote:Would you be willing to save your results and send them to us at:

support@red-gate.com?

with 'F69653' in the subject

I'll be able to get a clearer answer for you then.


I'll have to consult my higher-ups, since the results contain references to our proprietary code. You and I both know that the chances of you reverse-engineering anything from memory profiler results are nil, but they don't :-(

That said, I think I may have figured out what was causing my memory leak. The CrsDbTaskExecutor class that I mentioned spawns a thread that executes its instance method, and the thread calls Monitor.Wait(handle), until it is woken up. This means that the CrsDbTaskExecutor instance will never be garbage collected until the thread exits, even if there are no other strong references to it anywhere.

I'd still like to know what "<<UNLOADING>" means, so I'll try and send those results to you.
Bugmaster
 
Posts: 7
Joined: Fri Feb 23, 2007 3:57 am

Re:

Postby Bugmaster » Fri Feb 15, 2013 10:59 pm

Ok, I can send you the memory snapshot, but it's 154 MB zipped. My email service won't allow that through. Can I send it to you some other way, f.ex. via Dropbox ?
Bugmaster
 
Posts: 7
Joined: Fri Feb 23, 2007 3:57 am

Postby Chris.Allen » Mon Mar 04, 2013 3:03 pm

Sorry for delay was on vacation- will send ftp details to you on other channel...
Chris.Allen
 
Posts: 594
Joined: Thu Mar 12, 2009 4:17 pm

Re:

Postby Bugmaster » Tue Mar 05, 2013 4:12 am

Chris.Allen wrote:Sorry for delay was on vacation- will send ftp details to you on other channel...


Thanks Chris, I just uploaded two of my recent memory snapshots to the FTP.

One suggestion I have is to add another option to the ANTS filters; something like, "Show all objects that are held in memory by sleeping background threads and nothing else". It would be even cooler to extend that option to show only those background threads that could not conceivably wake up, though I'm not sure how feasible that is.

For example, in my case, the only way to wake up the thread would be to signal an object that it's waiting on inside of Monitor.Wait, but my code retained no pointers at all to that object, so in reality it could never be signaled.
Bugmaster
 
Posts: 7
Joined: Fri Feb 23, 2007 3:57 am


Return to ANTS Memory Profiler 7

Who is online

Users browsing this forum: No registered users and 0 guests

cron