首页 后端开发 php教程 PHP 7安装使用体验,升级PHP要谨慎

PHP 7安装使用体验,升级PHP要谨慎

Jun 23, 2016 pm 01:20 PM

一、发挥PHP 7高性能的几个要点

PHP 7相对于之前的PHP版本来说可以说性能有了质的飞跃,但是所谓“好马配好鞍,好车配风帆”,想要发挥PHP 7的性能优势,还需要从以下几个方面做准备:(此部分引自PHP7核心开发者, Yaf, Yar, Yac等项目作者:Laruence)。

1. 记得启用Zend Opcache,启用Opcache非常简单, 在php.ini配置文件中加入:

zend_extension=opcache.soopcache.enable=1opcache.enable_cli=1"
登录后复制

2. 使用新的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP 7才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升。

3. 开启HugePage有利于PHP 7更快, 首先在系统中开启HugePages, 然后开启Opcache的huge_code_pages,以CentOS 6.5为例, 通过命令:$sudo sysctl vm.nr_hugepages=512,分配512个预留的大页内存:

$ cat /proc/meminfo  | grep HugeAnonHugePages:    106496 kBHugePages_Total:     512HugePages_Free:      504HugePages_Rsvd:       27HugePages_Surp:        0Hugepagesize:       2048 kB
登录后复制

然后在php.ini中加入:opcache.huge_code_pages=1,这样一来, PHP会把自身的text段, 以及内存分配中的huge都采用大内存页来保存, 减少TLB miss, 从而提高性能.

4. 开启Opcache File Cache(实验性), 通过开启这个, 可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升。方法是在php.ini中加入:opcache.file_cache=/tmp。这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.

5. PGO。如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能。具体的, 以wordpress 4.1为优化场景.. 首先在编译PHP的时候首先:$ make prof-gen。

6、然后用你的项目训练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
登录后复制

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

二、PHP 7安装与编译

1、PHP 7官网:

  • 1、官网:http://php.net/
  • 2、下载:http://php.net/downloads.php

2、动手能力强的朋友,可以自己直接到官方下载PHP 7,然后手动编辑安装。如果你已经习惯使用lnmp.org站长的LNMP一键安装包,可以试试发布LNMP 1.3测试版,已经增加了增加php7支持:网站平滑迁移到LNMP或LAMP建站环境的方法 。

3、OneinStack提供的LNMP安装包已经有了PHP 7一键安装了,在执行脚本的时候,可以选择PHP 7安装,PHP 7目前只有官方自带的Zend Opcache扩展可供安装。

4、OneinStack安装PHP 7安装成功。

5、这是PHP 7信息显示。

6、这是OneinStack提供的PHP 7的Opcache控制面板。

三、PHP 7与老版本PHP、HHVM性能对比

1、这是国外开发者测试的PHP 7与PHP 5.6在Wordpress、Drupal等热门程序下表现的性能,结果很明显PHP 7性能提升很多。

2、PHP 7对于Wordpress等程序来说,不仅仅提升单个执行速度,随着Wordpress运行在PHP 7的时间越久,性能提升就更多。

3、上文也说到PHP 7对于PHP的性能提升在某些方面已经超过了HHVM,这是国外zend.com官网给出的PHP 5.6、PHP 7、HHVM在不同的程序下执行效率对比结果。

4、在专业开源的电子商务系统Magento上测试PHP 5.6、PHP 7、HHVM的执行效率,PHP 7是PHP 5.6运行速度的两倍,而内存占用还比PHP 5.6低30%。

5、Drupal 8上测试PHP 7的效率是最快的,已经超过了HHVM。

6、Wordpress测试时发现,PHP 5.6执行需要占用100MB内存,而PHP 7只要25MB。

7、在不同的程序执行速度上,PHP 7显然已经领跑,Ruby 2.1、Python 2.7.8、Perl 5.18.4都不及PHP 7。

四、PHP 7性能测试结果报告

1、空说无凭,PHP 7运行程序的性能到底如何呢?这里部落以一个全新的Wordpress为测试对象,运行在PHP 7上Wordpress首页加载时间测试显示0.029秒,内存是3.39MB。

2、这是同样的Wordpress页面运行PHP 5.6上的页面加载时间:1.955秒,内存占用了3.92MB。从数据上看,PHP 7已经完胜了PHP 5.6了。

3、PHP 7运行Wordpress的效率相对于之前的版本确实有了质的提升,为了全面了解PHP 7的性能,这里按照网站服务器压力Web性能测试的方法,用Webbench模拟10秒内200、400个连接数,速度都是8000页面/分以上。

4、此时,VPS服务器系统负载是3.49。

5、把模拟的连接数提高到1600个,速度依然保持在8000页面/分以上。

6、此时,VPS服务器系统负载是17,应该有点吃力了。

7、把模拟的连接数提高到5000个,速度是4800页面/分,速度开始慢下来了。

8、此时,VPS服务器系统负载是23,服务器负责过重了。

9、为了测试PHP 7在本VPS主机承受能力的极限,Webbench模拟10000个连接数在20秒不断访问服务器。

10、此时,VPS服务器的系统负载近90,应该是到达极限了,但是服务器依然没有死机。

11、接下来,让我们来看看同样配置的VPS主机运行Wordpress的压力测试结果,首先是用Webbench模拟10秒内200、400个连接数,速度是3600页面/分,相对于上面的PHP 7测试的速度慢了一半。

12、这是PHP 5.6测试200、400个连接数的系统负载,已经达到了10,明显超出了在PHP 7环境上测试的3.49。

13、在PHP 5.6测试将模拟连接数提高到1000、2000个,此时速度已经降到1600页面/分,连接成功数也降低到了500左右,远远低于在PHP 7测试时的2700。

14、此时,系统负载达到了17了。

15、在PHP 5.6中用Webbench测试连接数为10000,在20秒内不断访问服务器。此时,测试已经卡住,没有结果。

16、这里VPS服务器的系统负载已经达到了1000以上,服务器已经崩溃了。

17、PHP 5.6下的Wordpress网站已经宕机了。

五、PHP 7兼容性问题

1、目前国内的Discuz等还不支持PHP 7,PHP扩展也就只有官方的Opcache可以使用,其它的如eAccelerator、xcache、memcached等,大家可以随时关注扩展支持列表:https://github.com/gophp7/gophp7-ext/wiki/extensions-catalog。php的memcache扩展已经有了:https://github.com/php-memcached-dev/php-memcached/tree/php7 和https://github.com/websupport-sk/pecl-memcache。感谢快乐家园博主的提醒。

2、经过测试,PHP 7运行Wordpress没有任何问题。

3、在PHP 7上安装Wordpress插件都没有问题。

4、PHP 7还有部分函数、运算符等可能出现不兼容问题,不过99%的程序可能不会用到这些。

六、PHP 7安装使用体验小结

1、使用PHP 7后有一个惊喜就是,确实如国外开发者测试的那样,PHP 7性能基本上与HHVM持平,由于HHVM借助实时(Just In Time)编译器将 PHP 代码编译至机器指令,所以不少的PHP程序运行在HHVM是需要改良的。

2、PHP 7具备了HHVM的超高性能,同时又有了PHP向后兼容的优势,相信在不久的未来PHP 7会得到越来越多人的认可和接受。虽然目前支持PHP 7的缓存、加速等扩展还不多,但是这只是时间问题,越来越多的开发者会加入到PHP 7的开发行列中。

来自: http://www.phpxs.com/j/php7/1001234

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

php中的卷曲:如何在REST API中使用PHP卷曲扩展 php中的卷曲:如何在REST API中使用PHP卷曲扩展 Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

在Codecanyon上的12个最佳PHP聊天脚本 在Codecanyon上的12个最佳PHP聊天脚本 Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

解释PHP中晚期静态结合的概念。 解释PHP中晚期静态结合的概念。 Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

自定义/扩展框架:如何添加自定义功能。 自定义/扩展框架:如何添加自定义功能。 Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

See all articles