专栏首页后端技术探索鸟哥对于php7提高性能的几点建议

鸟哥对于php7提高性能的几点建议

点击关注⬆️nginx⬆️,学习lnmp

(转自鸟哥公众号)

php7怎么最大成程度提高性能,鸟哥有几点建议,引用鸟哥公众号全文如下:

今天临晨的时候, 在我们已经到了12月4日, 但是美国时间还是10月3日的时候, PHP7终于正式发布了.

官方的Release Note可以参看php.net:

"

The PHP development team announces the immediate availability of PHP 7.0.0. This release marks the start of the new major PHP 7 series.

PHP 7.0.0 comes with a new version of the Zend Engine, numerous improvements and new features such as

  • Improved performance: PHP 7 is up to twice as fast as PHP 5.6
  • Significantly reduced memory usage
  • Abstract Syntax Tree
  • Consistent 64-bit support
  • Improved Exception hierarchy
  • Many fatal errors converted to Exceptions
  • Secure random number generator
  • Removed old and unsupported SAPIs and extensions
  • The null coalescing operator (??)
  • Return and Scalar Type Declarations
  • Anonymous Classes
  • Zero cost asserts

"

下载地址(包括Windows): http://www.php.net/downloads.php

为了充分显示出PHP7的最佳性能, 这里有几点Tips给大家:

  1. 记得启用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角度衡量)

3. 在服务端开启HugePages, 然后开启Opcache的huge_code_pages.

以我的CentOS 6.5为例, 通过:

"sudo sysctl vm.nr_hugepages=512" 分配512个预留的大页内存

然后在php.ini中:

"opcache.huge_code_pages=1"

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

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

在php.ini中:

"opcache.file_cache=/tmp"

好了, 欢迎大家测试, 有问题欢迎反馈, 你可以提交bug到bugs.php.net, 或者你可以在微博上@我, 也可以在github上提交issue, 等等. Enjoy!

thanks

本文分享自微信公众号 - nginx(nginx-study),作者:鸟哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-12-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深入PHP内核(二)——SAPI探究

    SAPI是Server Application Programming Interface(服务器应用编程接口)的缩写。PHP通过SAPI提供了一组接口,供应用...

    后端技术探索
  • php7和HHVM的性能之争

    根据“TIOBE编程语言排行榜”(榜单虽然统计方式有局限,但是仍然不失为一个比较好的参考),2010年PHP最高曾经在世界编程语言中排名第三。可见,PHP语言在...

    后端技术探索
  • 2016 PHP大会,可以受教php之父Rasmus Lerdorf

    PHP全球开发者大会是DevLink每年一度的,特别针对PHP开发者的专题活动。每次活动均会请到该领域内的资深开发者、技术专家来分享具体、有针对性、具操作性的内...

    后端技术探索
  • 深入理解PHP原理之变量(Variables inside PHP)

    或许你知道,或许你不知道,PHP是一个弱类型,动态的脚本语言。所谓弱类型,就是说PHP并不严格验证变量类型(严格来讲,PHP是一个中强类型语言,这部分内容会在以...

    botkenni
  • IT面试干货:PHP面试题汇总及答案

    随着近两年来互联网潮流的发展,不少人选择php程序开发的学习。所以今天济南IT培训优就业的老师将与大家一起聊一聊PHP面试会问什么?、 ? PHP程序员经典面试...

    企鹅号小编
  • 官宣 | MongoDB面向MongoDB社区版发布全新服务器端公共许可协议

    MongoDB 公司(Nasdaq代码:MDB)日前发布了一项全新的面向 MongoDB 社区版的软件许可证,即服务器端公共许可证(SSPL)。该许可协议清晰且...

    MongoDB中文社区
  • 官宣 | MongoDB面向MongoDB社区版发布全新服务器端公共许可协议

    MongoDB 公司(Nasdaq代码:MDB)日前发布了一项全新的面向 MongoDB 社区版的软件许可证,即服务器端公共许可证(SSPL)。该许可协议清晰且...

    MongoDB中文社区
  • 百度面试总结

    http://blog.csdn.net/zhaojinjia/article/details/12649823

    bear_fish
  • 网易BOBO:在互联网上建设娱乐梦工场

    文:罗超;封面图:网易BOBO于9月进军台湾 这个时间大约是科技媒体人最忙的时刻,国内各种互联网企业和行业年会,国外CES之类的展会琳琅满目。不过,这些活动在网...

    罗超频道
  • 高并发下的订单与库存的处理

    分析: 在高并的场景下,假设库存只有 2 件 ,两个请求同时进来,抢购改商品,购买数量都是 2. A请求 此时去获取库存,发现库存刚好足够,执行扣库存下单操...

    用户1149268

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动