php 7.0发布在即,一直以来有传言说php7性能有飞跃,于是做了一个测试。

测试环境

硬件  虚拟机2G内存

OS  CentOS 6.7 (kernel 2.6.32-573.7.1.el6.x86_64)

Web  Apache/2.2.15 (centos 6自带)

php版本选择

5.3.3, CentOS 6自带的版本

5.3.29, 官方5.3分支的最后一个版本,用于跟apache模块做对比

5.6.15,

7.0.0beta3

除了第一个CentOS自带5.3.3是apache模块之外,全部跑在fast-cgi (php-fpm) 模式下,通过apache模块mod_proxy_fcgi整合在apache中(整合方式)。每个版本配置一个虚拟站点,域名分别为 a.dom, b.com... 。

php编译参数

三个自编译版本的编译参数如下(在 /usr/loca 目录下,分别安装到子目录里)

'./configure' '--enable-fpm' '--prefix=/usr/local/php53' '--with-config-file-path=/usr/local/php53/etc' '--with-config-file-scan-dir=/usr/local/php53/etc/php.d' '--enable-exif' '--with-gd' '--with-mysql' '--with-mysqli' '--with-pdo-mysql'

'./configure' '--enable-fpm' '--prefix=/usr/local/php56' '--with-config-file-path=/usr/local/php56/etc' '--with-config-file-scan-dir=/usr/local/php56/etc/php.d' '--enable-exif' '--with-gd' '--with-mysql' '--with-mysqli' '--with-pdo-mysql'

'./configure' '--enable-fpm' '--prefix=/usr/local/php7' '--with-config-file-path=/usr/local/php7/etc' '--with-config-file-scan-dir=/usr/local/php7/etc/php.d' '--enable-exif' '--with-gd' '--with-mysql' '--with-mysqli' '--with-pdo-mysql'

[注] centos自带5.3.3配置参数略,有点长,而且很多模块动态编译成动态加载模块,编译参数里是with-out,所以参数价值不大,故从略。

php7已经移除mysql模块,所以其配置参数里的 --with-mysql 事实上没用,在实际编译中被忽略掉的。

php-fpm配置

php-fpm全部配置成最大20进程,apache也配置成最大20个进程

测试说明

在本机上使用ab测试,减少网络传输的影响,500次连接,并发10,记录 Requests per second(req/s, 以下不再指明),示例

ab -c 10 -n 500 -H "Host: c.dom" http://127.0.0.1/phpinfo.php

[注] 因为使用虚假的域名,所以通过 -H参数指定主机名Host(改host文件也是一样的效果)

测试过程1:phpinfo页面

静态html基准测试,将phpinfo页面的输出保存成html文件,每秒稳定在3000次以上(300并发以下基本上能稳定在3000次,开ab的-k参数的情况下)

(phpinfo页面测试意义其实不大)

版本           次数1      次数2     次数3

---------     --------   --------    ----------

5.3模块:      810         837         774

5.6:          517         635         663

7.0b3:        675         700         638

这里看出php7的性能并不突出,反而apache模块运行效率更高

测试过程2:新安装wordpress文章页

新安装wordpress,其自带的一篇文章页http://127.0.0.1/wordpress/?p=1

版本          次数1      次数2     次数3 次数4

---------    --------   --------    --------- --------

5.3模块:      7.00        7.06        6.84 6.91

5.6:        7.54 7.55 7.48 4.55

7.0b3: 10.12 10.38 10.14 10.47

[小结]:5.6 较5.3略有增强,但差别很小;但php7较都有显示提高。

测试过程3:wordpress导入一批文章后的文章页

导入一批文章后,该测试里增加php5.3.29的fast-cgi版本

ab -c 10 -n 500 -H "Host: c.dom" http://127.0.0.1/wordpress/?p=6459

版本 次数1 次数2 次数3 次数4 次数5 平均值

--------- ------ ------- -------- ------- ----- -----

5.3模块: 5.76 5.60 5.66 5.64 5.82 5.696

5.3 fpm:    5.86      5.97       5.91       6.11 5.97 5.964

5.6: 6.57 6.62 6.65 7.35 5.49 6.536

7.0b3: 8.73 8.33 9.02 9.00 8.67 8.750

[小结]:延续前面的结果,php7比5.x有30%-50%提升,效果明显。

另外5.3的fastCGI及模块差别可以忽略,似乎不像有人说的fastCGI效率有多高。

php7性能提升幅度,似乎也不像鸟哥Laruence所说的翻倍以上的提升(第45页片子)但30%+的提升,也足够让人欣喜了

测试结论

就前面做的测试来看,php7确实比5.x版本有明显提升,值得在生产环境中部署(暂不考虑兼容性)。然而说前面测试结果来看,

附记*php的后向兼容性

按官方文档所示,php7在语言核心方面,变化几乎忽略。主要是彻底放弃php5.4以来已经声明“过时”的特性。

已知可能有较大影响的是 mysql_* 函数被移除,这就意味着使用mysql_*的一些旧应用将无法在php7上跑!一个可选的解决方案是,使用fastCGI,多php版本共存,迁就这些旧应用。

延伸阅读coded by nessus

apache php 3秒,php版本(5.3,5.5,7.0)及运行模式(fast-cgi/fpm,apache模块)之间性能对比测试...相关推荐

  1. CentOS下与Apache连接的PHP多版本共存方案实现详解

    这篇文章主要介绍了CentOS下与Apache连接的PHP多版本共存方案实现,针对mod_fcgi模块的配置作了一些说明,需要的朋友可以参考下 在apache下整合fastCGI模式运行的php-fp ...

  2. apache php隐藏头信息的方法,科技常识:nginx/apache/php隐藏http头部版本信息的实现方法...

    今天小编跟大家讲解下有关科技常识:nginx/apache/php隐藏http头部版本信息的实现方法,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关科技常识:nginx/apache/php ...

  3. macOS下Apache+nginx+mysql+php多版本切换的配置

    macOS下Apache+nginx+mysql+php多版本切换的配置 1.安装Homebrew 首先我们要先安装homebrew一个能让你很方便下载Apache.nginx.php的小工具 $ r ...

  4. linux隐藏apache信息,Apache防盗链和隐藏版本信息-linux-centos运维

    有需要服务器方面的需求和咨询,可以联系博主 QQ 7271895 一.防盗链 二.隐藏版本信息 实验要求: 三台虚拟机分别是:linux和两台windows虚拟机,linux虚拟机为服务器,Windo ...

  5. mac修改php配置文件,MAC下通过改apache配置文件切换php多版本的方法

    前言 前段时间,在自己的电脑上升级了php,php7.0虽然有部分更新,速度也提升了不少,但最近在做微信开发时,发现很多引擎不支持php7,于是想能不能安装两个版本进行切换,百度了很多方法发现不行.于 ...

  6. 是男人就坚持20秒—python版本

    记得玩这个游戏的时候是初中三年级,那时候在qq空间,网页版的,是男人就坚持20秒!很好奇!玩得忘了吃饭,还是坚持不到20秒,现在给大家机会! # coding = utf-8 # time 2015- ...

  7. 项目动态|Apache Pulsar 2.8.1 版本发布

    本文原文作者是 StreamNative 工程师陈航.刘昱. 关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息 ...

  8. 项目动态 | Apache Pulsar 2.7.3 版本介绍

    本文原文作者是 StreamNative 工程师丛搏.刘昱.译者刘梓霖,传智教育工程师. 关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云 ...

  9. Apache Pulsar 2.7.1 版本正式发布!

    作者:StreamNative 文档工程师刘昱.软件工程师张勇. 关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集 ...

最新文章

  1. 7个IntelliJ IDEA必备插件,让写代码像火箭一样飞起!
  2. u盘盘符不显示 win10_学会这三招,在win10上安全弹出U盘,保证数据不损坏
  3. 解决Ubuntu双击打开 txt 中文乱码(gedit)
  4. 数字媒体技术和数据科学与大数据技术_?数据科学与大数据技术的就业前景和待遇怎么样?...
  5. 《我在51CTO微职位学软考——奋发之路》
  6. 虚拟机登陆别的服务器吗,云服务器只能用虚拟机登录吗
  7. 传智播客全栈_播客:从家庭学生到自学成才的全栈开发人员
  8. python中的私有方法_Python: 内置私有方法
  9. Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类 1 1.1. 排序算法 字符串匹配(String Matching) 1 1.2. 加密算法 编码算法 序列
  10. 陈桥五笔,我再也不会下载了
  11. 电脑没有“立体声混音”设备怎么办,虚拟声卡安装教程
  12. spark-streaming 编程(一)构建开发环境
  13. python 北上资金_北上资金持股相关因子
  14. Python批量读取txt文件
  15. Spring_AOP(execution表达式)
  16. uni-app前端开发(一)登录功能
  17. 为你的程序创建一个控制台
  18. 如何运用dos命令进入指定目录
  19. Ubuntu16.04搜索不到wifi
  20. 玩转群晖NAS套件系列五:Moments的安装与使用保姆级教程!

热门文章

  1. “霸座女”越席乘坐火车并阻碍民警执行职务被拘留
  2. Storm记录02-- Storm是什么
  3. Matlab定义符号函数(ZZ)
  4. 从页面底部向上弹出dialog,消失时逐渐向下(转)
  5. eclipse/MyEclipse 日期格式、注释日期格式、时区问题[转]
  6. apache的php扩展名解析漏洞
  7. ECMAScript基础(三)-关键字
  8. 用JavaScript实现网页图片等比例缩放
  9. 同時啟動多個Tomcat服務器
  10. SAP HANA数据库安装