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

Reply via email to