[Mono-list] Heap-Shot with no GUI.
Esben Laursen
hyber at hyber.dk
Fri Nov 19 07:31:24 EST 2010
Den 18-11-2010 20:45, Paolo Molaro skrev:
> On 11/18/10 Esben Laursen wrote:
>> Allocation summary
>> Bytes Count Average Type name
>> 378194872 83939 4505 System.Byte[]
> [...]
>> It looks like its the "System.Byte[]" type where I have my leak. However
>> is there someway that I can see what methos or class that is originates
>> from? I use Bytes[] several places, but I cannot seem to find the place,
>> as I only use them inside methods that should be destroyed my GC when it
>> has finished.
> You have an allocation summary, so you can see where the arrays were
> allocated with:
>
> mprof-report --traces output.mlpd
Hi Lupus,
Thanks for all your help... I get this output..
Mono log profiler data
Profiler version: 0.2
Data version: 3
Mean timer overhead: 2626 nanoseconds
Program startup: Thu Nov 18 14:27:22 2010
Program ID: 4938
GC summary
GC resizes: 0
Max heap size: 0
Object moves: 283899
Gen0 collections: 83, max time: 20374us, total time: 669028us,
average: 8060us
Gen1 collections: 35, max time: 123462us, total time:
1354130us, average: 38689us
Allocation summary
Bytes Count Average Type name
582718568 98056 5942 System.Byte[]
557328000 bytes from:
pam.ClientRun:ProcessCombinedModues
(System.Collections.Generic.IEnumerable`1<pam.CombinedModule>)
pam.ClientRun:GetSshData (pam.ModuleOptions.SshOptions)
pam.SshControl:SendAndReturnData (string,string,int,bool)
pam.SshControl:GetData (string,int)
(wrapper remoting-invoke-with-check)
SBSimpleSSH.TElSimpleSSHClient:ReceiveText ()
SBSimpleSSH.TElSimpleSSHClient:ReceiveText ()
The way I read the info is that my "ClientRun.ProcessCombinedModules"
invokes the "ClientRun.GetSshData" that invokes
SshControl.SendAndReturnData and so on..
My pam.SshControl.GetData invokes TElSimpleSSHClient:ReceiveText many
times to check if there are data comming back. So as I understand it its
in the "SBSimpleSSH.TElSimpleSSHClient:ReceiveText" that does not clear
a Byte array.. The reason I am a little puzled about this is that the
"ClientRun" class runs every 5 minutes (it has a timer), but just before
it starts it sets "SshControl=null" and then later it creates a new
instance, so even if the "ReveiveText" method did not clear the Byte
array then it should be destroyed by the GC right?
Or am I reading the output wrong?
Cheers
Esben
More information about the Mono-list
mailing list