PHP7如何开启Opcode打造强悍性能详解

PHP7如何开启Opcode打造强悍性能详解

1.什么是Opcode

Opcode是指操作码,也就是计算机指令集中的一种操作码。在PHP中,Opcode是指PHP代码中的每个指令的二进制代码表示。PHP脚本的解释器将脚本中的PHP代码解析为Opcode,然后执行Opcode来完成PHP代码实现的功能。

2.PHP7的Opcode Cache

PHP7的执行效率得到很大提升,部分原因源于基于Zend Engine的Opcode Cache在PHP7中加入了更多的内存存储,这意味着PHP执行器不再将脚本直接转换为中间代码,并马上执行编译出的Opcode。相反,PHP执行器会将编译生成的Opcode缓存到内存中,并建立一个指向这个缓存区域的指针供下次使用。这样PHP脚本就不必每次执行时都重新编译一遍。

3.如何开启Opcode Cache

在PHP7中,开启Opcode Cache不再需要装扩展,而是在php.ini文件中进行设置。常见的设置方式有两种:

方式一:

```

opcache.enable=1

opcache.memory_consumption=128

opcache.max_accelerated_files=4000

opcache.revalidate_freq=60

```

上述代码中,opcache.enable=1表示开启Opcode Cache,opcache.memory_consumption=128表示为Opcode Cache分配的内存大小为128M,opcache.max_accelerated_files=4000表示允许缓存的最大文件数为4000个,opcache.revalidate_freq=60表示60秒后清空缓存。

方式二:

另一种设置方式是利用调用phpinfo函数来查看现在PHP的版本。用这种方式,您可以直接在phpinfo中进行Opcode Cache设置。在phpinfo函数的结果中,找到“Zend OPcache”这个部分,您将看到包括Opcode Cache在内的一些PHP设置。向下滚动到详情页和设置部分,可以找到可配置的选项。

4.性能优化

除了基本的设置外,您还可以通过以下方式对性能进行调优:

(1)调整内存大小:尽可能最大化Opcode Cache的内存分配可以保持更多的Opcodes和解析后的指令,在提取、编译和效率方面可以带来显著的性能优势。

(2)调整max_accelerated_files:当达到最大值时,内存中存储的Opcode Cache被清空。因此,您应该确保底层操作系统的文件打开句柄限制不会比此值小,这是因为Opcode Cache将打开并查看每个PHP脚本文件,就像一个PHP代码的“Fopen”操作一样。如果找不到相应的文件句柄,Opcode Cache可能无法正常工作。

(3)重新验证频率:如果您的应用程序的开发人员频繁地修改源文件,您可以设置Opcode Cache重新验证它们的频率。例如,如果一段时间内没有更改源代码,就可以使用前面提到的opcache.revalidate_freq指令来清空itre符合时,在重新请求来获得性能提升。默认值为2。

5.总结

在PHP7中,Opcode Cache的使用成为了性能提升的重要手段。通过合理设置opcache的参数,您可以有效地提升PHP执行的效率和速度。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签