Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Oct 2002 11:50:24 -0700
From:      David Schultz <dschultz@uclink.Berkeley.EDU>
To:        Poul-Henning Kamp <phk@critter.freebsd.dk>
Cc:        Danny Braniss <danny@cs.huji.ac.il>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: malloc
Message-ID:  <20021023185024.GA468@HAL9000.homeunix.com>
In-Reply-To: <43186.1035395104@critter.freebsd.dk>
References:  <20021023165929.GA7863@HAL9000.homeunix.com> <43186.1035395104@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
Thus spake Poul-Henning Kamp <phk@critter.freebsd.dk>:
> In message <20021023165929.GA7863@HAL9000.homeunix.com>, David Schultz writes:
> 
> >You can find a somewhat more thorough comparison of malloc
> >implementations at http://citeseer.nj.nec.com/440671.html .
> 
> There are many problems with this paper, and my feeling is that it was
> written with a very specific purpose in mind, although I havn't been
> able to figure out just what that purpose was.

I did say `somewhat', didn't I?  ;-)  As I mentioned in the part of
my message that you didn't quote, I don't much care for the paper
either, but it's the only half-reasonable comparison I know of.
I don't think the authors know what they're talking about, but they
did collect extensive data for some real world programs, which I
assume is valid.

I agree that the behavior of the program from the point of view of
the VM system is the most important metric.  But internal and
external fragmentation are also significant issues.  Often, these
are a result of programmers not understanding how their malloc
works.  For example, programs that make numerous 2K allocations in
phkmalloc will get twice the amount of memory they asked for, and
since each chunk is page-aligned, it will be twice as bad for the
VM system.

A harder problem to solve is fragmentation for long-running
servers, where the RSS tends to creep upwards over time as virtual
memory fills with holes.  There seems to be a fair amount of
research on the subject, although I'm not well read on it.  The
phkmalloc bucket approach seems to work quite well, as the
aforementioned paper claims.  I'm guessing that one of these days
it will have to be modified for threaded applications to reduce
false sharing on SMP systems.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021023185024.GA468>