Re: g_malloc overhead

On Wed, 2009-01-21 at 10:21 +0100, BJörn Lindqvist wrote:
> 2009/1/21 Liam R E Quin <liam holoweb net>:
> > On Mon, 2009-01-19 at 18:43 +0100, BJörn Lindqvist wrote:
> >> Actually, a custom allocator could be useful even in the general case.
> >> Malloc is a system call and has quite bad performance on certain
> >> platforms (windows in particular i think). Something like the gslice
> >> allocator could
> >> Probably improve performance a bit.
> >
> > malloc is a library call.
> On Linux, it is implemented using mmap() and brk() which are system
> calls.

brk(2) is called to grow the heap, but not on every malloc() call;
mmap(2) is used only for large objects, and then not always.

If you malloc() a few megabytes and then call free, a program
that allocates a lot of small objects may well go faster on some
systems, and slower on others.

Yes, g_slice was tested, but the program _calling_ g_slice is in
the domain of the user, and errors in calling g_slice or malloc()
can be hard to debug.

No more from me on this.


Liam Quin - XML Activity Lead, W3C,
Pictures from old books:

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]