Date: Mon, 3 Sep 2001 03:52:04 -0500 From: Alfred Perlstein <bright@mu.org> To: Bruce Evans <bde@zeta.org.au> Cc: John Polstra <jdp@polstra.com>, current@FreeBSD.ORG, gersh@sonn.com Subject: Re: MALLOC/FREE macro useage. Message-ID: <20010903035204.M81307@elvis.mu.org> In-Reply-To: <20010903183414.X6804-100000@alphplex.bde.org>; from bde@zeta.org.au on Mon, Sep 03, 2001 at 06:47:22PM %2B1000 References: <20010902211606.I81307@elvis.mu.org> <20010903183414.X6804-100000@alphplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* Bruce Evans <bde@zeta.org.au> [010903 03:47] wrote: > On Sun, 2 Sep 2001, Alfred Perlstein wrote: > > > The reason for the macro is that when the size paramter is a constant > > there's an evil trick that makes selecting the malloc bucket really > > cheap. > > That's not the reason. The size parameter is not constant since MALLOC() > just calls malloc(). I wouldn't call the big conditional statement in > BUCKETINDX() an evil trick. But perhaps it should be replaced by fls(). > A builtin fls() could handle constants just as well. Well it was the original intent, in fact it was done such that when a constant was used and the bucket wasn't empty the code would expand to just a handful of instructions. This is mentioned in "Design and Implementation". As far as BUCKETINDX(), i almost thought that instead of doing power of two buckets, we could use mod-32, this would do nifty things like when we just barely go over 128 bytes for something we don't waste nearly double our allocation. -- -Alfred Perlstein [alfred@freebsd.org] 'Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom.' '"Java" developer, like "special" Olympics, right?' - Bill Paul To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010903035204.M81307>