Date: Wed, 20 Apr 2005 07:30:54 +0700 (ICT) From: "Chatchawan Wongsiriprasert" <cws@miraclenet.co.th> To: freebsd-performance@freebsd.org Subject: Slow realloc Message-ID: <13101.210.86.179.115.1113957054.squirrel@210.86.179.115>
index | next in thread | raw e-mail
Hi,
Last week I got a request from my customer to check that why his
PHP code run much slower on FreeBSD than the Linux machine. After sometime
of checking I found the the problem is in the PHP serialize function which
use a lot of realloc call with small (128 bytes) incremenent. I
had sumbited a small patch (http://bugs.php.net/bug.php?id=32727) to fix
the problem which decrease the run-time of a test code from 2 seconds to
0.2 second
After check on gooble, I found that this is an intension in FreeBSD libc
design to increase the performance of malloc and sacrifice the less use
realloc (http://phk.freebsd.dk/pubs/malloc.pdf and
http://www.freebsd.org/cgi/query-pr.cgi?pr=61691)
The question:
Is there another way to increase the performance of the program that use a
lot of small realloc call other than change the way that a program use
realloc (as I do and Poul-Henning Kamp suggest in pr61691)?
Becase the way I use need a lot of time to found where to fix and the fix is
localize (PHP also use realloc in other place such as string operation
which my patch does not fix -- so , concatenate a string runs 10 times
slower on FreeBSD than Linux).
Moreover, Linux realloc is fast , so many open source deveper that use
Linux as their main devepment system will overlook this problem (such as
in PHP case).
Regards,
Chatchwan Wongsiriprasert
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?13101.210.86.179.115.1113957054.squirrel>
