Hi Shire,
I run patched APC on a number of real-life applications and got more
than 30% speedup on XOOPS (99 req/sec instead of 60%) and 20% on
ZendFramework (41 req/sec instead of 32), however most applications
(drupal, qdig, typo3, wordpress) didn't show significant speed
difference. As was expected the patch doesn't affects PHP without APC or
with APC and lazy loading disabled.
I also got APC warning with Zend Framewoek based blog application, but I
didn't try to look deeper.
[Wed Mar 11 17:53:02 2009] [apc-warning] [Wed Mar 11 17:53:02 2009]
[apc-warning] apc_lookup_class_hook: could not install blogrow in
/var/www/html/bench/fw/ZendFramework-1.5.0RC3/library/Zend/Loader.php on
line 86
I didn't look careful into APC code, just into PHP patch and I see the
following issues:
1) I would prefer to add additional hash_value argument into
lookup_function_hook() and lookup_class_hook to prevent multiple
calculation.
2) function_exists() should use lookup_function_hook().
3) interface_exists() and class_alias() should use lookup_class_hook().
4) ext/soap, ext/reflection, ext/wddx and ext/spl autoload support
Anyway, it's very good job and 20-30% speedup on some real-life
applications makes sense to include it into 5.3 (from my point of view).
Thanks. Dmitry.
shire wrote:
Dmitry Stogov wrote:
Hi,
Personally, I like the patch except for some small possible tweaks, and
I believe it can't make any harm with lazy loading disabled.
Thanks, what are the tweaks you'd like to see so I can try to include them?
Could you provide some benchmark results?
I was hoping to solicit some from others on the list, but haven't seen
anything yet. My best example of gains is Facebook, I believe these
where around 20-30% decrease in CPU usage on a bare-bones page.
I did test Joomla and Zend Framework, the gains here aren't much if
anything as they seem to be use autoload for most files. (although I
would like to see what lazy method loading can do here).
I intend to benchmark wordpress as well. I'll post more benchmarks for
the above and this once I make some more tweaks that also might give us
better results. I anticipate that benchmarks are going to vary pretty
drastically depending on code structure, size, autoloading, etc.
APC patch to play with it and see advantages/disadvantages?
I've gone ahead and checked in the current code for APC, so you'll have
the necessary changes if you checkout CVS HEAD.
-shire
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php