[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gtk
Subject:    [gtk-list] Re: Revisting: glib/gtk memory (re)use
From:       Havoc Pennington <rhp () zirx ! pair ! com>
Date:       1999-07-11 0:55:00
[Download RAW message or body]


On Sat, 10 Jul 1999, Andy Kahn wrote:
> I was under the understanding that glib tries to intelligently reuse
> dynamically allocated memory.  That is, when you g_free() a hunk of
> memory, it gets placed on a free list so that it can possibly be
> recycled in the future when g_malloc() and friends are called.
> 
> (Yes, I am also aware that on most systems, the C runtime library will
> do the same for malloc()/free() calls, but this is not the issue
> here.  In this situation, I am referring strictly to glib and gtk.)
>

g_free() And g_malloc() are just wrappers for the C library malloc() and
free().
 
Glib does keep pools of allocated memory for equal-sized chunks (like list
nodes) because managing equal-sized chunks is much faster and easier than
a general allocator.

> Each time after completing 1000 iterations, I checked the memory use
> of the program and it keeps increasing.  So unless my eyes deceive me,
> my understanding must be flawed.  Can someone clear this up?
> 

Hard to say what's going on without a detailed debug session.
There might be a memory leak, or it may be that your C library isn't able
to return some memory for whatever reason, maybe there's fragmentation,
just hard to say.

Havoc


-- 
To unsubscribe: mail -s unsubscribe gtk-list-request@redhat.com < /dev/null

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic