| Author |
Message |
Bugmaster
Joined: 23 Feb 2007 Posts: 6
|
Posted: Wed Feb 13, 2013 11:32 pm Post subject: What does <<UNLOADING> mean ? |
|
|
I am trying to track down a nasty memory leask, and ANTS says that my objects are held in memory by:
| Code: |
| <<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 ? |
|
| Back to top |
|
 |
Chris.Allen
Joined: 12 Mar 2009 Posts: 443
|
Posted: Fri Feb 15, 2013 1:04 pm Post subject: |
|
|
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. |
|
| Back to top |
|
 |
Bugmaster
Joined: 23 Feb 2007 Posts: 6
|
Posted: Fri Feb 15, 2013 8:22 pm Post subject: Re: |
|
|
| 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. |
|
| Back to top |
|
 |
Bugmaster
Joined: 23 Feb 2007 Posts: 6
|
Posted: Fri Feb 15, 2013 10:59 pm Post subject: Re: |
|
|
| 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 ? |
|
| Back to top |
|
 |
Chris.Allen
Joined: 12 Mar 2009 Posts: 443
|
Posted: Mon Mar 04, 2013 3:03 pm Post subject: |
|
|
| Sorry for delay was on vacation- will send ftp details to you on other channel... |
|
| Back to top |
|
 |
Bugmaster
Joined: 23 Feb 2007 Posts: 6
|
Posted: Tue Mar 05, 2013 4:12 am Post subject: Re: |
|
|
| 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. |
|
| Back to top |
|
 |
|