Shared vs Static Performance

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Does anyone have a general idea of the difference in performance when
compiling PHP with primarily shared extensions rather than static? A
recent Yahoo presentation "PHP at Yahoo" highlighted that they built
PHP with the "disable-all" option, which implies that they load all of
their extensions dynamically.

I'd be curious if anyone has any experience in the performance
difference bewteen the two, i.e. 5% performance loss, not just "it's
only a little bit slower".

Re: Shared vs Static Performance

On Tue, 18 Apr 2006 14:55:41 -0700, tomdean20 wrote:
Quoted text here. Click to load it

To be honest I think it'd make pretty much sod-all difference either way,
at least on a Linux platform. Linux process forking using a Copy-on-write
memory model, so creating a new apache/PHP process for a new connection
(the only time dynamic linking to a shared extension would happen unless
you literally load them in the script) is as lightweight either way as the
entire processes memory is referenced twice and new memory only allocated
if pages change.

I'm sure Yahoo has found a slight increase in performance (or some other
reason) or they'd do it the other way round, but I'd be surprised if
performance difference was significant (of course, for a single option
change during compile time it's worth doing even if relatively minor).

Sorry to not give you a definitive answer, but I just thought I'd pipe up
with that (in case anyone reading the thread doesn't know about Linux
process forking).



Andy Jeffries MBCS CITP ZCE   | gPHPEdit Lead Developer | PHP editor for Gnome 2 | Personal site and photos

Re: Shared vs Static Performance wrote:
Quoted text here. Click to load it

Yahoo! is not a typical PHP installation -- they run FreeBSD, a tweaked
Apache, and their PHP is configured as a FastCGI executable...  This is
very different from your average PHP installation...  


Site Timeline