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	
