Re: [gtk-list] Re: memory leak GtkText
- From: Teemu Kalvas <chery s2 org>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Re: memory leak GtkText
- Date: 07 May 1998 13:06:24 +0100
Jason Nordwick <nordwick@scam.XCF.Berkeley.EDU> writes:
> > > Teemu Kalvas, on 5/7/1998, wrote the following:
> > > >
> > > > I tested this with a shorter program which just repeatedly puts random
> > > > lines into the text widget and then takes them away, and it seems that
> > > > the memory use of the program rises every time text is added but never
> > > > goes down when text is removed. So I conclude that there must be a
> > > > memory problem with GtkText.
> > > >
>
> I just ran it through for awhile and never saw the problem.
> There were 50 inserts and deletes done between each of these intervals
> (done by add/delete x 50, not grouped).
>
> 7113 nordwick 2 0 428K 1368K select 0:00 0.00% 0.00% gtk-test
> 7113 nordwick 2 0 428K 1368K select 0:00 0.00% 0.00% gtk-test
> 7113 nordwick 2 0 428K 1340K select 0:00 0.00% 0.00% gtk-test
> 7113 nordwick 2 0 428K 1324K select 0:00 0.00% 0.00% gtk-test
>
> However when I group adds, then do one delete at the end I get this:
>
> 7113 nordwick 2 0 444K 1352K select 0:00 0.00% 0.00% gtk-test
>
> I think this is just because the realloc of the ->text buffer needs to
> go get more memory of page alignment... no bug deal, because free
> wont return it to the OS, just keep it for later use. I can then
> go up to a buffer of over 10k before the segment grows by another 16k.
When doing this experiment repeatedly I get something like this:
Start:
chery 3160 1.6 1.9 2552 1548 p0 S 12:55 0:00 gtk-test
Add up to 10k:
chery 3160 1.0 1.9 2588 1580 p0 S 12:55 0:00 gtk-test
Delete:
chery 3160 0.8 1.9 2588 1580 p0 S 12:55 0:00 gtk-test
Add:
chery 3160 0.7 1.9 2588 1584 p0 S 12:55 0:00 gtk-test
Delete:
chery 3160 0.7 1.9 2588 1584 p0 S 12:55 0:00 gtk-test
Add:
chery 3160 0.6 1.9 2592 1592 p0 S 12:55 0:00 gtk-test
Delete:
chery 3160 0.5 1.9 2592 1592 p0 S 12:55 0:00 gtk-test
Add:
chery 3160 0.5 2.0 2592 1596 p0 S 12:55 0:00 gtk-test
Delete:
chery 3160 0.5 2.0 2592 1596 p0 S 12:55 0:00 gtk-test
Add:
chery 3160 0.5 2.0 2612 1612 p0 S 12:55 0:01 gtk-test
Delete:
chery 3160 0.5 2.0 2612 1612 p0 S 12:55 0:01 gtk-test
The memory used after the add/remove 10k chararters -cycle does not
always go up, so it seems that the behaviour is data dependent -- it
might have something to do with the line start cache maybe, as the
actual line lengths used are randomised in that test program.
With the original program the memory amounts lost were a bit more
severe, it lost about 30M into hyperspace before I noticed something
was going wrong. I estimate that by that time it had done about
10000-20000 cycles like this.
And no, I do not use timeouts or an idle function in this program.
--
Teemu Kalvas
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]