There is an opcache.optimization_level php.ini directive. It is a bitmask a defaults to 0xffffffff
- so by default OPcache does all the optimizations.
What kind of optimizations does OPcache do? What passes on bytecode are done?
Follow-up question: is there a code pattern that OPcache can optimise very well? For example, HHVM can skip execution of files that contain only class/function declarations and it just fills class/function tables.
OPcache improves PHP performance by storing precompiled script bytecode in shared memory, thereby removing the need for PHP to load and parse scripts on each request.
You should definitely enable opcache. I remember that WordPress has something like 8x smaller response time with opcache. Difference may be less pronounced for Laravel, but will still be huge.
opcache. enable_cli boolean enables the opcode cache for the CLI version of PHP. This is mostly useful for testing and debugging. Therefore it should be disabled unless you're really need this.
OpCode Caches are a performance enhancing extension for PHP. They do this by injecting themselves into the execution life-cycle of PHP and caching the results of the compilation phase for later reuse. It is not uncommon to see a 3x performance increase just by enabling an OpCode cache.
The bits of opcache.optimization_level
correspond to:
I've looked around to see if I can find anything on any code patterns that it handles better than others, but I haven't had any luck.
Information from https://github.com/zendtech/ZendOptimizerPlus/blob/master/Optimizer/zend_optimizer.c and https://gist.github.com/ck-on/4959032?ocp.php
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With