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