QQ登录

只需一步,快速开始

扫一扫,访问微社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1387|回复: 0

[PHP开发] 让 PHP7 达到最高性能的几个建议

[复制链接]

174

主题

191

帖子

485

Z币

注册会员

Rank: 2

积分
726
发表于 2015-12-6 13:33:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

PHP7 已经发布了,作为PHP十年来最大的版本升级,最大的性能升级,PHP7在多放的测试中都表现出很明显的性能提升,然而,为了让它能发挥出最大的性能,我还是有几件事想提醒下。

63918611gw1eyovhm41ilj21200ladhn.jpg
PHP7 VS PHP5.6

1. Opcache

记得启用Zend Opcache,因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快,所以之前测试时期就发生了有人一直没有启用Opcache的事情。启用Opcache非常简单,在php.ini配置文件中加入:

  1. zend_extension=opcache.so
  2. opcache.enable=1
  3. 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为例,通过:

  1. $sudo sysctl vm.nr_hugepages=512
复制代码
分配512个预留的大页内存:
  1. $ cat /proc/meminfo  | grep Huge
  2. AnonHugePages:    106496 kB
  3. HugePages_Total:     512
  4. HugePages_Free:      504
  5. HugePages_Rsvd:       27
  6. HugePages_Surp:        0
  7. Hugepagesize:       2048 kB
复制代码
然后在php.ini中加入:
  1. opcache.huge_code_pages=1
复制代码

这样一来,PHP会把自身的text段,以及内存分配中的huge都采用大内存页来保存,减少TLB miss,从而提高性能。

4. Opcache file cache

开启Opcache File Cache(实验性),通过开启这个,我们可以让Opcache把opcode缓存缓存到外部文件中,对于一些脚本,会有很明显的性能提升。
在php.ini中加入:

  1. opcache.file_cache=/tmp
复制代码

这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件,可以跨PHP生命周期存在。

5. PGO

我之前的文章: 让你的PHP7更快(GCC PGO) 也介绍过,如果你的PHP是专门为一个项目服务,比如只是为你的Wordpress,或者drupal,或者其他什么,那么你就可以尝试通过PGO,来提升PHP,专门为你的这个项目提高性能。

具体的,以wordpress 4.1为优化场景。首先在编译PHP的时候首先:

  1. $ make prof-gen
复制代码
然后用你的项目训练PHP,比如对于Wordpress:
  1. $ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null
复制代码

也就是让php-cgi跑100遍wordpress的首页,从而生成一些在这个过程中的profile信息。

最后:

  1. $ make prof-clean
  2. $ make prof-use
复制代码

这个时候你编译得到的PHP7,就是为你的项目量身打造的最高性能的编译版本。

暂时就这么多吧,以后想起来再加,欢迎大家尝试,thanks。

原文出处: 惠新宸(@Laruence)


评分

参与人数 1Z币 +2 收起 理由
admin + 2 很给力!

查看全部评分

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

     
    战略合作|联系方式|广告赞助|商务合作|Archiver|手机版|小黑屋|( 京ICP备14036609号-6 )

GMT+8, 2018-12-19 11:07

© 2013-2018 Powered by Discuz! X3.3. 本站由 又拍云 提供 CDN 图片存储服务

快速回复 返回顶部 返回列表