kern/61691: very bad performance of realloc()/brk()
Poul-Henning Kamp
phk at phk.freebsd.dk
Fri Jan 23 13:00:46 PST 2004
The following reply was made to PR kern/61691; it has been noted by GNATS.
From: "Poul-Henning Kamp" <phk at phk.freebsd.dk>
To: Radim Kolar <hsn at netmag.cz>
Cc: freebsd-bugs at FreeBSD.org, bug-followup at FreeBSD.org
Subject: Re: kern/61691: very bad performance of realloc()/brk()
Date: Fri, 23 Jan 2004 21:51:36 +0100
In message <20040123152035.GA2311 at asura.bsd>, Radim Kolar writes:
>> You seem to be confused as to what responsibilities the programmer
>> has when it comes to practicing sensible memory management.
>I have run some benchmarks for you. There are doing 32 times realloc() in
>1 MB chunks. I don't think that this is example of bad programming
>practice. The major problem is that realloc() copies data while Linux
>doesn't.
No, as I said, the problem is you use realloc the wrong way.
You should not
malloc(1M)
realloc(2M)
realloc(3M)
You should
realloc(32M)
do stuff
realloc(now_i_know_the_size)
For whatever value of 32M 99% of your data fit in.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the freebsd-bugs
mailing list