What is a bytecode cache and how can I use one in PHP?

前端 未结 2 1353
情深已故
情深已故 2020-12-08 19:54

I searched on the Web and came to know that PHP code can be compiled to have performance boost. But how to do it? Can I compile both procedural and object oriented PHP code?

2条回答
  •  有刺的猬
    2020-12-08 20:44

    The basic idea, when executing a PHP script is in two steps :

    • First: the PHP code, written in plain-text, is compiled to opcodes
    • Then: those opcodes are executed.


    When you have one PHP script, as long as it is not modified, the opcodes will always be the same ; so, doing the compilation phase each time that script is to be executed is kind of a waste of CPU-time.

    To prevent that redundant-compilation, there are some opcode caching mechanism that you can use.

    Once the PHP script has been compiled to opcodes, those will be kept in RAM -- and directly used from memory the next time the script is to be executed ; preventing the compilation from being done again and again.


    The opcode cache which is used the most is APC - Alternative PHP Cache :

    • See on PECL to download the APC extension
    • And here's its manual

    Once APC has been installed and configured properly, there is nothing you have to modify in your PHP code : APC will cache the opcodes, and that is all -- the process is totally invisible for your application.

提交回复
热议问题