On 11/19/10 Esben Laursen wrote: > Heap shot 10 at 331.831 secs: size: 23752824, object count: > 22964, class count: 519, roots: 8074 > Bytes Count Average Class name > 17182136 1117 15382 System.Byte[] (bytes: +16703432, > count: +509) > 555 root references (2 pinning) > 18 references from: SBSSHClient.TElSSHClient > 14 references from: > SBCryptoProvBuiltInSym.TElBuiltInAESSymmetricCrypto > 13 references from: SBSSHKeyStorage.TElSSHKey > > Sorry that you have to spell it out in wet cardboard, but what is a root > reference and what does pinning mean?
Typically, a root reference is a static field in a class, or a gc handle (see the GCHandle docs on msdn). Pinning means that two of those arrays were referenced either from a pinning gc handle or from some pinning variable on one of the thread's stacks (because of something like the fixed C# statement or by the conservative GC scan of some other stack local variable). Pinning means also that the object can't be moved in memory. Given the high number of root references to the arrays, my guess is that the app creates GC handles for them and doesn't free them. In the GC summary you should see something like the following if my guess is true: GC handles normal: created: 600, destroyed: 0, max: 600 lupus -- ----------------------------------------------------------------- lu...@debian.org debian/rules lu...@ximian.com Monkeys do it better _______________________________________________ Mono-list maillist - Mono-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list