[Gambas-user] How to profile memory usage in gambas application ?
Olivier Cruilles
olivier.cruilles at ...614...
Sun May 3 00:00:32 CEST 2015
In fact I’m not able to use Editor1.Insert() because it does not works for me so it’s for this reason I use Editor.Text &= …
I use one of the last svn revision.
My code is something like that:
1- First try
Editor1.Insert(DataToAdd, Editor1.Lines.Count - 1, Editor.Lines[Editor1.Lines.Count - 1].length) => Do not work
2 - Second try
Editor1.Goto(Editor1.Lines.Count - 1, Editor.Lines[Editor1.Lines.Count - 1].length)
Editor1.Insert(DataToAdd)
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