|
Inside The Accelerator
Every time a PHP script is accessed, the PHP engine must open the script file
and read, parse, and compile the file contents into a compiled
form. Only then can the compiled code be executed.
With scripts often including other scripts, this work can become a
significant part of the overall time to deliver a
page. It can also impact I/O performance, and require much dynamic
memory allocation that in itself can be time consuming.
The reality, however, is that most PHP scripts never change
from one access to the next; indeed they may never change for weeks, months, or
even years. The Accelerator works to eliminate the penalty of processing
scripts that never change, and by caching the
compiled scripts in shared memory, delivers significant performance
gains as a result. Note that this is very different to caching script
output. PHPA doesn't do this, scripts remain fully dynamic, and if
they do change then PHPA caches a new version - they
just run faster!
So by caching, the Accelerator eliminates:
- reading of source code
- parsing of source code
- compiled code generation
- many memory allocation and copying operations
- disk related operations
Once script execution has completed,
compiled versions of any new or modified
scripts are immediately cached on disk for later reuse.
This guarantees good acceleration, but scripts are then cached in shared
memory, and offering the maximum performance gains.
The Accelerator has one other performance enhancing feature - a built-in
code optimiser. Although in it's early stages, the optimiser reduces the size
of compiled code and improves the code by removing unnecessary operations.
So in summary, by aggressively removing operations causing performance
overhead, the Accelerator is able to deliver performance rivalling the very
best alternatives, and for free!
There are also a few performance tests and testimonials that illustrate the potential impact of the Accelerator.
|