[Gambas-user] How to profile memory usage in gambas application ?

Olivier Cruilles olivier.cruilles at ...614...
Sun May 3 00:01:49 CEST 2015


Second try do not work too.

Cordialement,

Olivier Cruilles


> Le 2 mai 2015 à 17:38, Olivier Cruilles <olivier.cruilles at ...614...> a écrit :
> 
> Ok, I will investigate and I back to you.
> 
> Thank you
> 
> Cordialement,
> 
> Olivier Cruilles
> 
> 
>> Le 2 mai 2015 à 17:11, Benoît Minisini <gambas at ...1...> a écrit :
>> 
>> Le 01/05/2015 20:05, Olivier Cruilles a écrit :
>>> Hi Benoit, Is there a way to monitor usage of memory of objects
>>> (Class, Collection, etc...) in Gambas please ? May be you have
>>> already developed something like time execution profiler already
>>> existing in Gambas but for memory usage ? My problem is I use an
>>> Editor object in a project because it is so great to display text
>>> with numbered lines and other possibilities that it offer but after
>>> inserted 12000 lines just by Editor1.Text &= new_text_receive, the
>>> memory usage of my program jump from 65 MB of memory resident to
>>> around 1GB. So, with a memory profiler in Gambas it will easier to
>>> find where I need to change my code to optimize space memory. Do you
>>> think something can be made in this way please ? Thank you Olivier
>>> 
>> 
>> Not automatically, but you can periodically print the number of each
>> object of each class.
>> 
>> I don't see why the Editor would make the memory consumption jump suddenly.
>> 
>> But doing "Editor1.Text &= new_text" is very stupid, because it extracts
>> the entire text from the Editor to a new string, creates another new
>> string by concatenating "new_text", and the result is sent back to the
>> Editor, and will be parsed so that each line is recreated. The heap
>> becomes fragmented, and so the heap that is not used anymore cannot be
>> actually freed.
>> 
>> Use the Insert() method instead. If it makes the memory consumption
>> going down, you found the guilty code.
>> 
>> Regards,
>> 
>> -- 
>> Benoît Minisini
> 





More information about the User mailing list