[Gambas-user] debugging a (apparent) memory leak

Benoît Minisini gambas at ...1...
Tue Oct 29 03:36:02 CET 2013


Le 29/10/2013 03:27, Benoît Minisini a écrit :
> Le 29/10/2013 02:20, Kevin Fishburne a écrit :
>> I don't think it's always been like this, but when I sometimes forget to
>> close the server app running on my physical server and it runs for a few
>> days I notice gb3 is using all 8 GB of system RAM and several GB of the
>> swap partition. There's nothing in the app (that I know of) that should
>> ever be using that much memory, so it sounds like a memory leak.
>>
>> Is there a way, other than manually following the logic of the entire
>> execution sequence, to identify what part of the code is continually
>> sucking up more and more RAM?
>>
>> Also, other than the infamous GOSUB without a corresponding RETURN, what
>> types of declarations or code logic should I look for if I do scan
>> through the codebase? Red flags, in other words.
>>
>
> If you have a main loop somewhere, you can count the number of object
> allocations at each loop, by using the Class.Count property:
>
> Dim hClass As Class
> For Each hClass In Classes
>     Print hClass.Name;;hClass.Count
> Next
>
> Then you can see which kind of object allocation grows indefinitely.
>

Another possibility would be an array whose size grows indefinitely too, 
but the last method won't allow you to detect it.

-- 
Benoît Minisini




More information about the User mailing list