2017 php7 使用率,让PHP7达到最高性能的几个Tips
让PHP7达到最高性能的几个Tips
1. Opcache
记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
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为例, 通过:
$ sudo sysctl vm.nr_hugepages=512
分配512个预留的大页内存:
$ cat /proc/meminfo | grep Huge
AnonHugePages: 106496 kB
HugePages_Total: 512
HugePages_Free: 504
HugePages_Rsvd: 27
HugePages_Surp: 0
Hugepagesize: 2048 kB
然后在php.ini中加入:
opcache.huge_code_pages=1
这样一来, PHP会把自身的text段, 以及内存分配中的huge都采用大内存页来保存, 减少TLB miss, 从而提高性能.
4. Opcache file cache
开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.
在php.ini中加入:
opcache.file_cache=/tmp
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.
5. PGO
我之前的文章: 让你的PHP7更快(GCC PGO) 也介绍过, 如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能.
具体的, 以wordpress 4.1为优化场景.. 首先在编译PHP的时候首先:
$ make prof-gen
然后用你的项目训练PHP, 比如对于Wordpress:
$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null
也就是让php-cgi跑100遍wordpress的首页, 从而生成一些在这个过程中的profile信息.
最后:
$ make prof-clean
$ make prof-use && make install
这个时候你编译得到的PHP7就是为你的项目量身打造的最高性能的编译版本.
暂时就这么多吧, 以后想起来再加, 欢迎大家尝试, thanks
2017 php7 使用率,让PHP7达到最高性能的几个Tips相关推荐
- godaddy停止支持php哪个版本,GoDaddy cPanel虚拟主机新增PHP7.0和PHP7.1版本 | Godaddy美国主机中文指南...
自从上次GoDaddy虚拟主机取消PHP5.3以下版本后,近日再次做出调整.小编登录GoDaddy Linux主机的cPanel控制面板时发现,已经新增了PHP7.0和PHP7.1两个版本.目前GoD ...
- php7.1函数,PHP7.1常用新特性和函数
在php7发布了之后,官方又紧接着发布了php7.1.php7.2,我们也接着使用了新版本.接下来就说说7.1有那些新的特性. Nullable types 在7的时候,如果使用了强类型就必须传递或者 ...
- 宝塔php7.4通用拓展需要安装_bt宝塔面板php7.3、php7.4不支持ZipArchive解决方法
宝塔面板php7.3版本不支持ZipArchive导致程序无法后台直接更新的解决方法 在SSH命令行界面执行以下语句: cd /www/server/php/73/src/ext/zip/ /www/ ...
- php7安装xhprof,PHP7 下安装并使用 xhprof 性能分析工具
xhprof 的安装 cd ~ git clone https://github.com/longxinH/xhprof 安装 xhprof cd xhprof/extension/ /opt/php ...
- larver php7.0,关于PHP7.0与PHP5.6下Laravel博客应用性能对比分析详解
目前我安装的 Homestead 虚拟机版本是 2.1.8: 该版本 Homestead 上预装的 PHP 版本是 5.6.15: 我们使用 ab 命令(Apache 提供的性能测试工具)在该版本中测 ...
- 【PHP】PHP7 下安装并使用 xhprof 性能分析工具
该 xhprof 版本是从 https://github.com/longxinH/xhprof 获取 git clone https://github.com/longxinH/xhprof 安装 ...
- php7 php5 区别,php7与php5的区别有哪些?
PHP7距正式发布以及有挺长时间了,刚出道就号称比旧版本快了几倍,各种开源框架或系统运行在PHP7上速度效率提高了几倍.那么php7和php5之间的区别是什么? php5与php7之间的区别: 1.性 ...
- 新浪微博php7升级实践,PHP7线上system time飙高问题
最近刚刚全量上线PHP7,经过一晚发现个别机器的PHP-FPM占用CPU很高,整机top查看system time非常高. 通过strace查看PHP-FPM的系统调用发现存在频繁mmap/munma ...
- php7的浮点数,php7.1浮点数运算问题
最近在项目中遇到一个问题,测试服务器接口返回金额精度缺失,导致app解析不正确发生闪退.调试后发现浮点数在json_encode后损失了精度,如下图所示. 网上说是因为php7.1版本的seriali ...
最新文章
- Quartus 13.1安装心得
- Leetcode1703. 得到连续 K 个 1 的最少相邻交换次数[C++题解]:难(货仓选址加强版+滑动窗口+前缀和)
- 智慧办公的AI博弈——看飞企互联如何接招!
- 【Rational Rose使用笔记】用例图
- 使用Linux curl命令获取本机公网IP地址
- HTTP(超文本传输协议)
- 见证激情燃烧的汤姆·彼得斯(Tom Peters)
- Docx模板引擎示例
- 3D Object Detection入门——PointRCNN代码学习
- php中传址调用,PHP中foreach引用传地址
- 用ODBC方式操作dbf文件
- Java 方法重载和覆盖重写的区别及注意事项
- CV之FR:基于某AI公司的API接口基于人脸识别实现计算人脸相似度(计算两张人脸图片相似度进而判断否为同一个人)—利用人工智能算法判断相似度极高的国内外明星案例应用
- 利用小程序快速生成App,只需七步
- Divergence-Free Smoothed Particle Hydrodynamics
- DNS的作用和解析过程描述
- python调用WinRAR暴力获取压缩密码 用网址做解压密码
- 一个故事告诉你,压力真的可以击垮一个人
- python s append_详细介绍pandas的DataFrame的append方法使用
- 字符间距加宽5磅怎么设置_word的字符间距加宽1period;2磅