让 PHP7 达到最高性能的几个建议
2015-12-24 11:40
621 查看
原文出处:
惠新宸(@Laruence)
记得启用Zend Opcache,因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快,所以之前测试时期就发生了有人一直没有启用Opcache的事情。启用Opcache非常简单,在php.ini配置文件中加入:
使用新一点的编译器,推荐GCC 4.8以上,因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持,这个会带来5%左右的性能提升(Wordpres的QPS角度衡量)
其实GCC 4.8以前的版本也支持,但是我们发现它支持的有Bug,所以必须是4.8以上的版本才会开启这个特性。
我之前的文章也介绍过:
让你的PHP7更快之Hugepage ,首先在系统中开启HugePages,然后开启Opcache的huge_code_pages。
以我的CentOS 6.5为例,通过:
分配512个预留的大页内存:
然后在php.ini中加入:
这样一来,PHP会把自身的text段,以及内存分配中的huge都采用大内存页来保存,减少TLB miss,从而提高性能。
开启Opcache File Cache(实验性),通过开启这个,我们可以让Opcache把opcode缓存缓存到外部文件中,对于一些脚本,会有很明显的性能提升。
在php.ini中加入:
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件,可以跨PHP生命周期存在。
我之前的文章:
让你的PHP7更快(GCC PGO) 也介绍过,如果你的PHP是专门为一个项目服务,比如只是为你的Wordpress,或者drupal,或者其他什么,那么你就可以尝试通过PGO,来提升PHP,专门为你的这个项目提高性能。
具体的,以wordpress 4.1为优化场景。首先在编译PHP的时候首先:
然后用你的项目训练PHP,比如对于Wordpress:
也就是让php-cgi跑100遍wordpress的首页,从而生成一些在这个过程中的profile信息。
最后:
这个时候你编译得到的PHP7,就是为你的项目量身打造的最高性能的编译版本。
惠新宸(@Laruence)
1. Opcache
记得启用Zend Opcache,因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快,所以之前测试时期就发生了有人一直没有启用Opcache的事情。启用Opcache非常简单,在php.ini配置文件中加入:
2. 使用新的编译器
使用新一点的编译器,推荐GCC 4.8以上,因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持,这个会带来5%左右的性能提升(Wordpres的QPS角度衡量)其实GCC 4.8以前的版本也支持,但是我们发现它支持的有Bug,所以必须是4.8以上的版本才会开启这个特性。
3. HugePage
我之前的文章也介绍过:让你的PHP7更快之Hugepage ,首先在系统中开启HugePages,然后开启Opcache的huge_code_pages。
以我的CentOS 6.5为例,通过:
分配512个预留的大页内存:
然后在php.ini中加入:
这样一来,PHP会把自身的text段,以及内存分配中的huge都采用大内存页来保存,减少TLB miss,从而提高性能。
4. Opcache file cache
开启Opcache File Cache(实验性),通过开启这个,我们可以让Opcache把opcode缓存缓存到外部文件中,对于一些脚本,会有很明显的性能提升。在php.ini中加入:
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件,可以跨PHP生命周期存在。
5. PGO
我之前的文章:让你的PHP7更快(GCC PGO) 也介绍过,如果你的PHP是专门为一个项目服务,比如只是为你的Wordpress,或者drupal,或者其他什么,那么你就可以尝试通过PGO,来提升PHP,专门为你的这个项目提高性能。
具体的,以wordpress 4.1为优化场景。首先在编译PHP的时候首先:
然后用你的项目训练PHP,比如对于Wordpress:
也就是让php-cgi跑100遍wordpress的首页,从而生成一些在这个过程中的profile信息。
最后:
这个时候你编译得到的PHP7,就是为你的项目量身打造的最高性能的编译版本。
相关文章推荐
- PHP序列化与反序列化解读
- PHP读取Excel里的文件
- 编译安装及配置PHP7
- PHP文件相关处理(本地文件处理系统)
- 70、MSTP简介
- 15 个实用的 PHP 正则表达式
- PHP实现文件上传和多文件上传
- 适用的php代码段
- PHP生成条形码
- 纯PHP代码实现支付宝批量付款
- PHP文件上传问题汇总(文件大小检测、大文件上传处理)
- 69、RSTP简介
- 4种PHP异步执行的常用方式
- PHP全选 删除
- tp select 与 find 区别
- yii2 rules验证解析
- windows7下安装架设thinkphp3.2.3
- [Windows Server 2012] PHPWind安全设置
- PHP下SSL加密解密、验证、签名方法(很简单)
- 深入浅析php json 格式控制