On Jan 8, 2004, at 4:40 PM, Zeev Suraski wrote:
At 23:34 08/01/2004, Ilia Alshanetsky wrote:On January 08, 2004 04:11 pm, Zeev Suraski wrote:
> Well, if we really get to save 100K as Ilia imagined, for a thousand
> children, it's 100MB, and there are those with more. I doubt we can easily
> get 100K though.
'Freeing' 100k is not as difficult as it sounds in PHP 5 when you consider
that 4 object files (filters.o 14460, ftp_fopen_wrapper.o 13616, info.o
13868, streamsfuncs.o 13408) make up for more then 1/2. Add (url_scanner_ex.o
12304, var.o 14616 image.o 11432,var_unserializer.o 5984) and you've reduced
your php library/binary by 100k.
Hrm, but that's not interesting at all, since that's server-wide memory that's shared across the children processes. Saving memory is only really interesting if we save per-process memory.
Even so you gain only a 100mb saving (1000 simultaneous apache processes, WOW)
per server. Given that 100mb of ram is only about $10 (or less) it seems to
me this would be a cheaper solution then having to pay a programmer
($50/hour+) to recompile PHP with obscure options (to reduce memory
footprint) on a variety of servers. I won't even go into the loss of
functionality that maybe needed later.
We're talking about servers where you can add no further memory because they're already maxed out. And they also use way more than 1,000 simultaneous processes, so those *THEORETIC* 100K could translate into half a gig, plenty of room to run additional processes.
My inclination is that this is a pretty fringe usage of the software. I feel like I've been around the block a few times and haven't seen too may installations that large who had such tight per-process memory requirements, and even in applications where this is a serious concern (large Oracle installs being the first example that jumps to mind), the burden was usually on user-created data and not internal memory usage. This change (which I heard you don't support :) seems to have only a tiny possible benefit for a very small number of users and negatively affect script portability.
As a complete aside - I've always found it to be really hard to avoid context-switching myself to death running near that many processes. I believe the Y! folks had similar experience. I'm having trouble envisioning an app were that runs well. Are you running on serious enterprise hw (os390/e10k/etc)?
George
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php