鸟哥的博客原文:http://www.laruence.com/2015/12/04/3086.html
鸟哥的博客,让PHP7达到最高性能的几个Tips。
第一点:
那么,为什么开启opcache会提高性能。
先阐述三个概念:
1.PHP-CGI是PHP语言与服务器交互的CGI程序。CGI本身只能解析请求,返回结果。它本身并没有进程管理的作用。来一个请求就回fork一个子进程。
2.真正解析PHP代码的是一个叫做zend的东西。
3.PHP-FPM则是php-cgi的管理器,他包括master和worker两种进程,master负责管理worker进程。
那么把这3个东西联系起来,就是这样子的。
我们可以看到中间zend解析的时候,将PHP编译为opcode文件。
C语言等编译性语言是编译为2进制文件。
PHP是解释性语言,他也需要转换为机器可以认识的东西,zend解析后的opcode文件也被成为操作码。
PHP文件第二次执行时,同样还是会重新转换为字节码,但是很多时候,文件内容几乎是一样的,比如静态HTML文件,生成后内容许久都不会改变,用户访问请求直接由服务器读取响应给客户端浏览器。都不用经过PHP进行解析构建了。
内存中的字节码数据,可以直接缓存进行二次编译。这样程序就会快一些,cpu的消耗也少了。