Archive

Posts Tagged ‘performance’

PHP OPCodes Cached with APC – part 1

October 21st, 2009 Ali Abbas No comments

There are many caching system in use to optimize the execution of PHP script on busy web/database servers. Today we will focus on the OPcode caching method using APC.

Before we start… what is an OPcode?

The OPcode is an executable code generated each time a PHP script is interpreted and compiled. Each time you visit a webpage, the webserver (apache for example) would generate an OPcode of the PHP script serving your request. They are therefore simply C data structure which are interpreted by the PHP Virtual Machine (Zend Engine).

Now you can imagine, generating the OPcode can be a drain on the server and quite useless if the code does not change often. This is where the OPcode caching system comes into play; but before we go on, let’s see some OPcode example using the Vulcan Logic Disassembler.

First, we create a file test.php in which we will execute a unix ls -l command

test.php – <? system(“ls -l”); ?>

wrk01:/var/www# php -d vld.active=1 test.php
Branch analysis from position: 0
Return found
filename:       /var/www/test.php
function name:  (null)
number of ops:  4
compiled vars:  none
line     #  op                           fetch          ext  return  operands
——————————————————————————-
2     0  SEND_VAL                                                 ‘ls+-l’
1  DO_FCALL                                      1          ‘system’
4     2  RETURN                                                   1
3* ZEND_HANDLE_EXCEPTION

Now let’s try a simple ( echo “hello world!” ) Read more…

Categories: LAMP, Unix / Linux