views:

55

answers:

4

I was thinking to use opcode caching for performance profit

what is the easiest way for opcode caching with PHP/Apache ? and what are the performance improvements ?

I have read about xDebug but I was wondering if there are more options ?

+1  A: 

Try APC : been using it with Mediawiki and the results are significant.

jldupont
A: 

Other popular options are eAccelerator and APC.

Performance improvements will depend on the web app you're caching. Here are some benchmarks for the Drupal CMS using APC and eAccelerator, and here's the same site's tutorial on installing APC (nice and easy).

ceejayoz
A: 

On Debian/Ubuntu, try:

sudo aptitude install php5-xcache

A commercial solution is from Zend, http://www.zend.com

initall
+1  A: 

I use the APC extension as an opcode cache on both my personnal server, and on the servers we are using at work -- and I've almost never run into any kind of trouble with it.


Installation is pretty easy : depending on your Linux distribution, you might want to use something like :

sudo aptitude install php5-apc

But you'd not necessarily have the last stable version... And I generally prefer using :

sudo pecl install apc

Which will fetch the last version from PECL and compile it (Note : you'll probably need to installed a package called php5-dev).

You'll then have to configure it ; see Runtime Configuration for the directives you can configure.


The performance improvements can vary depending on your server/application, but, on a server that only serves PHP pages (i.e. if your DB is on another machine) you might see a drop in CPU load that's quite important (I've seen CPU load go from 80% to 40-50% on a server, once)


Xdebug is not related to opcode caching nor performance : as its name indicates, it's useful for debugging.

And Xdebug should not be installed on a production server : it can be a pain, when it comes to performances -- I suppose it's because it "hooks" into PHP and add lots of stuff, like logging many informations useful for debugging ; which means more calculations to do -- which takes time and CPU.

Pascal MARTIN