什么是字节码缓存,如何在 PHP 中使用?
我在网上搜索并了解到可以编译 PHP 代码以提高性能.但是怎么做呢?我可以编译面向过程和面向对象的 PHP 代码吗?
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?
推荐答案
基本思路,执行PHP脚本时分两步:
The basic idea, when executing a PHP script is in two steps :
- 首先:以纯文本形式编写的 PHP 代码被编译为操作码
- 然后:执行那些操作码.
当你有一个 PHP 脚本时,只要不修改,操作码永远是一样的;因此,每次执行该脚本时都进行编译阶段是一种 CPU 时间的浪费.
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.
一旦 PHP 脚本被编译为操作码,这些操作码将保存在 RAM 中——并在下次执行脚本时直接从内存中使用;防止编译一次又一次.
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.
使用最多的操作码缓存是APC - Alternative PHP Cache :
- 在 PECL 上查看以下载 APC 扩展
- 这是手册
一旦 APC 安装并正确配置,您就无需在 PHP 代码中修改任何内容:APC 将缓存操作码,仅此而已 -- 该进程对您的应用程序完全不可见.
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.
相关文章