id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,blockedby,phpversion,appname,pending,exts,sapi,probability,blocking
186,Degraded performance when using Zend Guard encoded files with XCache 1.2.2 and Zend Optimizer 3.3.0,screamer@…,moo,"Hello.[[BR]]
We are developing a PHP system which is encoded with Zend Guard/ionCube Encoder and as you may guess the Zend Optimizer/ionCube Loader is a ""must"" for us.[[BR]]
I personally like to squeeze every little percent of performance and that's why i had to pick the best op-code cacher.[[BR]]
Please note the tests below are NOT synthethic benchmarking.[[BR]]
The source code includes both encoded (when encoded of course) and non-encoded files, loads of classes, template generating+caching and MySQL queries (the time spent in mysql queries is stripped)[[BR]]
[[BR]]
'''Test case''':[[BR]]
Intel QuadCore 2.4GHz[[BR]]
8GB ram[[BR]]
Debian w/ 2.4.36[[BR]]
Apache 1.3.31[[BR]]
PHP 5.2.6[[BR]]
PHP 4.4.7[[BR]]
Zend Optimizer v3.3.0[[BR]]
ionCube Loader 1.3.24[[BR]]
eAccelerator v0.9.5.3[[BR]]
XCache v1.2.2[[BR]]
APC v3.0.19[[BR]]
[[BR]]
[[BR]]
[[BR]]
'''Zend Guard encoded''':[[BR]][[BR]]
Test 1.1: Zend Optimizer only (all other modules disabled)[[BR]]
Page load time 0.069 seconds[[BR]]
[[BR]]
Test 1.2: Zend Optimizer + XCache[[BR]]
Page load time 0.094 seconds[[BR]]
[[BR]]
Test 1.3: Zend Optimizer + eAccelerator[[BR]]
Page load time 0.063 seconds[[BR]]
[[BR]]
[[BR]]
'''ionCube encoded'''[[BR]][[BR]]
Test 2.1: ionCube Loader only (all other modules disabled)[[BR]]
Page load time 0.062 seconds[[BR]]
[[BR]]
Test 2.2: ionCube Loader + XCache[[BR]]
Page load time 0.075 seconds[[BR]]
[[BR]]
Test 2.3: ionCube Loader + eAccelerator[[BR]]
Page load time 0.056 seconds[[BR]]
[[BR]]
[[BR]]
'''Pure PHP source'''[[BR]][[BR]]
Test 3.1: XCache only[[BR]]
Page load time 0.021 seconds[[BR]]
[[BR]]
Test 3.2: eAccelerator only[[BR]]
Page load time 0.023 seconds[[BR]]
[[BR]]
[[BR]]
'''Notes''':[[BR]]
1. When using PHP5 Suhosin patch the time increases with 0.004-0.008 seconds[[BR]]
2. The difference between PHP4 & PHP5 time was about 0.01 seconds more for PHP4 (yeah, obviously PHP4 is slower) [[BR]]
3. The APC tests did not complete. The child process Sigfaulted all the time.[[BR]]
4. Tests 3.1 and 3.2 used the original source code of the project.[[BR]]
5. For all ionCube Loader tests (2.x) we used PHP4
[[BR]]
[[BR]]
[[BR]]
Now the big questions is - why XCache is slower when working with Zend Guard/ionCube encoded files?[[BR]]
As you may note it's far better if you don't use XCache at all if you have encoded files, or as in our case - use eAccelerator.[[BR]]
The tests with other op-code cachers are just to show that there is a way of speeding the things up.[[BR]]
Don't get me wrong - eAccelerator needs a lot of work to catch up with XCache. That's not the point of this ticket though.[[BR]]
The point is to show that there is a huge flaw in XCache when used with encoded files and 40-50% more time to generate a page for a production server is too much (imagine milion hits per day).[[BR]][[BR]]
As we are big fans of Moo (and especially lighttpd project) we strongly believe you can fix it :)[[BR]]
[[BR]]
[[BR]]
Regards,[[BR]]
Mihail Stoyanov[[BR]]
[[BR]]
P.S. If you need any beta testing, debugging or anything that i could be helpful - feel free to contact me at anytime.",defect,closed,major,1.3.0,cacher,1.2.2,fixed,zend optimizer ioncube loader xcache slow,,,5.2.11,,0,"Zend Optimizer 3.3.0, ionCube Loader 1.3.24",apache1,Always,
