Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

sosex.dll dumpgen inconsistent results - any explanation?

54 views
Skip to first unread message

Loy

unread,
Jul 13, 2009, 9:14:50 AM7/13/09
to
Trying to figure out managed memory leak I found out the GEN2 and LOH
takes much more than expected

Looking at LOH (Gen 3)

"!dumpgen 3 -stat " shows 39 System.Object[] taking 805,700,296 bytes

But "!dumpgen 3 -type System.Object[] -stat " shows 34 System.Object[]
taking only 130,696 bytes

Where did I lost the 5 arrays and that huge chunk of memory?
Why is it?
Any way to find this data?

Dekel


0:040> !dumpgen 3 -stat
Count Total Size Type
-------------------------------------------------
5268 308600 **** FREE ****
5230 686297900 System.String
39 805700296 System.Object[]

10537 objects, 1492306796 bytes
0:040> !dumpgen 3 -type System.Object[] -stat
Count Total Size Type
-------------------------------------------------
34 130696 System.Object[]

34 objects, 130696 bytes


Alvin Bruney [ASP.NET MVP]

unread,
Jul 14, 2009, 7:38:06 AM7/14/09
to
Just find the root of the suspect leak like so:
!gcroot "pass raw address like 00a63e2c". From the root, you can determine
if it is a valid leak or not and then you would know how to fix it - if it
is a valid leak.

.NET developers should always keep this page book marked
http://blogs.msdn.com/ricom/archive/2004/12/10/279612.aspx

--
Regards,
Alvin Bruney

Auther Plug
OWC Blackbook now on download at www.lulu.com/owc

"Loy" <l.oy...@gmail.com> wrote in message
news:bfadc833-9a9c-41d6...@z28g2000vbl.googlegroups.com...

Loy

unread,
Jul 15, 2009, 8:48:53 AM7/15/09
to
Hi Alvin

Thanks for your respose.

The problem is that I don't have the addresses of the objects (Object
[] instances) that are responsible to most of the memory

I can "!dumpGen 3" and filter out all the string objects
But this is only valid for simple situations and reasonable number of
objects

The main issue is - not being able to trust sosex.dll results for my
other investigations

On Jul 14, 2:38 pm, "Alvin Bruney [ASP.NET MVP]" <vapor dan a t h u t


ma le dut cu m> wrote:
> Just find the root of the suspect leak like so:
> !gcroot "pass raw address like 00a63e2c". From the root, you can determine
> if it is a valid leak or not and then you would know how to fix it - if it
> is a valid leak.
>

> .NET developers should always keep this page book markedhttp://blogs.msdn.com/ricom/archive/2004/12/10/279612.aspx


>
> --
> Regards,
> Alvin Bruney
>
> Auther Plug
> OWC Blackbook now on download atwww.lulu.com/owc
>

> "Loy" <l.oyo...@gmail.com> wrote in message


>
> news:bfadc833-9a9c-41d6...@z28g2000vbl.googlegroups.com...
>
>
>
> > Trying to figure out managed memory leak I found out the GEN2 and LOH
> > takes much more than expected
>
> > Looking at LOH (Gen 3)
>

> > "!dumpgen3 -stat " shows 39 System.Object[] taking 805,700,296 bytes
>
> > But "!dumpgen3 -type System.Object[] -stat " shows 34 System.Object[]


> > taking only 130,696 bytes
>
> > Where did I lost the 5 arrays and that huge chunk of memory?
> > Why is it?
> > Any way to find this data?
>
> > Dekel
>

> > 0:040> !dumpgen3 -stat


> >       Count      Total Size      Type
> > -------------------------------------------------
> >        5268         308600       **** FREE ****
> >        5230      686297900       System.String
> >          39      805700296       System.Object[]
>
> > 10537 objects, 1492306796 bytes

> > 0:040> !dumpgen3 -type System.Object[] -stat


> >       Count      Total Size      Type
> > -------------------------------------------------
> >          34         130696       System.Object[]
>

> > 34 objects, 130696 bytes- Hide quoted text -
>
> - Show quoted text -

0 new messages