PHP多版本、多平台的速度测试结果(超完整)

王志勇 发表于 2019年10月03日 17:00

说明:本文的测试数据均来自同一台主机,这样能够得出更精确的对比,安装环境、测试这些数据用了1天多的时间。测试的内容仅为让循环程序执行累加1000万次,其它的函数、语句可能会有差异。虽然只是测试一项,但还是有参考价值,能够从这些执行结果中,看出不同的PHP版本的执行速度的提升。

如果对PHP的每个函数、每个语句进行速度测试,每天测试10个小时,可能连续3-5年都测不完。因此,所有的PHP的性能对比测试的数据都是不完全精确的,只能参考。这是因为每个函数、每个语句,在不同版本下的速度提升不同,有可能有的函数、语句并没有提升。

下列数据的结论:
1. 单从循环程序累加这方面来看,在Debian、Ubuntu系统下,PHP 7.0~7.3速度几乎完全一样,没有性能的提升;PHP 7.1~7.3速度完全一样,PHP 7.0反而略微快一点点,约5%-10%的差异。PHP 7.4有了明显的提升,PHP 7.4速度约是PHP 7.3的1.9~2.1倍
2. Debian、Ubuntu系统下,Apache和Nginx下的PHP一样快。
3. CentOS系统下,Nginx+PHP平均比Apache+PHP快约20%-50%
4. PHP 7.4+Debian,速度约是PHP 7.4+CentOS 7的2倍。
5. PHP 7.3+Debian,速度约是PHP 7.3+CentOS 7的1.5倍。
6. PHP 7.X+CentOS 7,速度约是PHP 7.X+CentOS 6的1.5~2倍。
7. 在CentOS 7系统下,PHP 7.4和PHP 7.3的速度差异不大。而在Debian+PHP 7.4,体现出了PHP 7.3的2倍速度。
8. Debian 8+PHP 7.X和Debian 9+PHP 7.X的速度完全一样。这2个系统使用上最明显的不同是,Debian 8依然保留rc.local的功能(可用于开机自启);Debian 9去掉了rc.local。
9. Ubuntu和Debian,同一版本的PHP,在这两个系统下的速度没有任何区别。上述的评测结论中,所有的“Debian”的词语可以替换成“Ubuntu”,因为这两者的服务器性能一样,很难找出区别。
Ubuntu的优点:Ubuntu 12的OpenVZ版自带已配置好的sendmail。Ubuntu 16、18版本依然保留rc.local。
Ubuntu服务器版开机、或重启特别快,约11秒开机,可能是由于服务器版不带桌面。
10. 通过第三方软件源安装的PHP,和系统自带源安装的PHP,如果版本相同,性能没有任何区别。
PHP方面,最好用的第三方软件源,Ubuntu用PPA,Debian用sury,CentOS用remi。这三家第三方软件源,都在默默地、无私地为大家耕耘着
正是因为有这些第三方软件源,我们可以轻松安装任意的PHP版本。

测试程序为:
<?php
$start=microtime(true);
for ($i=1;$i<=10000000;$i++){}
$end=microtime(true);
echo ($end-$start);
?>

下列数据的单位是微秒,即百万分之一秒。每个平台刷新多次,取成绩较好的3次结果。

Debian 8.0+Apache+PHP 7.4.0 (我的主力环境,省内存)
0.053919076919556 微秒
0.055496215820312 微秒
0.057925224304199 微秒

Debian 8.0+Apache+PHP 7.3.9
0.10902500152588
0.11312508583069
0.10770606994629

Debian 8.0+Apache+PHP 7.2.22
0.10908794403076
0.11758494377136
0.11525297164917

Debian 8.0+Apache+PHP 7.1.32
0.10679697990417
0.11357116699219
0.10770082473755

Debian 8.0+Apache+PHP 7.0.33
0.11288595199585
0.1017382144928
0.10212206840515

Debian 8.0+Apache+PHP 5.6.40
0.24600291252136
0.26271605491638
0.25394105911255

Debian 8.0+Nginx+PHP 7.4.0
0.05839204788208
0.058258056640625
0.055569887161255

Debian 8.0+Nginx+PHP 7.3.9
0.096651077270508
0.086481094360352
0.089262962341309

Debian 8.0+Nginx+PHP 7.2.22
0.098964929580688
0.099143981933594
0.10303401947021

Debian 8.0+Nginx+PHP 7.1.32
0.10124802589417
0.094712972640991
0.09648609161377

Debian 8.0+Nginx+PHP 7.0.33
0.10983800888062
0.10881519317627
0.1045229434967

Debian 8.0+Nginx+PHP 5.6.40
0.25392508506775
0.27300190925598
0.26028108596802

Debian 9.11+Apache+PHP 7.4.0
0.058127164840698
0.060291051864624
0.057128190994263

Debian 9.11+Nginx+PHP 7.4.0
0.05649209022522
0.052047967910767
0.063120126724243

CentOS 7.4.1708+Apache+PHP 7.4.0
0.11540389060974
0.12529706954956
0.1295108795166

CentOS 7.4.1708+Nginx+PHP 7.4.0
0.11188888549805
0.10081100463867
0.10230398178101

CentOS 7.4.1708+Apache+PHP 7.3.10
0.13830399513245
0.15926194190979
0.16574501991272

CentOS 7.4.1708+Apache+PHP 7.2.23
0.15155291557312
0.16431307792664
0.17670583724976

CentOS 7.4.1708+Apache+PHP 7.1.32
0.13999104499817
0.15872001647949
0.16652798652649

CentOS 7.4.1708+Apache+PHP 7.0.33
0.15262198448181
0.17163014411926
0.15957283973694

CentOS 7.4.1708+Apache+PHP 5.6.40
0.35205221176147
0.43340182304382
0.38812303543091

CentOS 7.4.1708+Apache+PHP 5.5.38
0.40842986106873
0.39665794372559
0.35387682914734

CentOS 7.4.1708+Apache+PHP 5.4.45
0.3356499671936
0.36821007728577
0.39978694915771

CentOS 6.5+Apache+PHP 7.3.10
0.27494788169861
0.29654908180237
0.2439329624176

CentOS 6.5+Apache+PHP 7.2.23
0.24336791038513
0.23833394050598
0.26327610015869

CentOS 6.5+Apache+PHP 7.1.32
0.23659801483154
0.25639605522156
0.27514219284058

CentOS 6.5+Apache+PHP 7.0.33
0.25079107284546
0.23825097084045
0.25114798545837

CentOS 6.5+Apache+PHP 5.6.40
0.43943095207214
0.41831111907959
0.42791104316711

CentOS 6.5+Nginx+PHP 7.3.10
0.22572708129883
0.24627017974854
0.25817704200745

CentOS 6.5+Nginx+PHP 7.2.23
0.27135300636292
0.26882815361023
0.24049091339111

CentOS 6.5+Nginx+PHP 7.1.32
0.22624206542969
0.26890277862549
0.24356007575989

CentOS 6.5+Nginx+PHP 7.0.33
0.23995208740234
0.26950597763062
0.26219797134399

CentOS 6.5+Nginx+PHP 5.6.40
0.39044785499573
0.39617800712585
0.43448114395142

CentOS 6.5+Apache+PHP 5.3.3 (自带源)
0.66925501823425
0.71402907371521
0.69028401374817

CentOS 5.8+Apache+PHP 5.1.6 (自带源) (我曾经的主力环境,超省内存)
1.0847749710083
0.85708403587341
1.1157069206238

Debian 7.0+Apache+PHP PHP 5.4.45 (自带源) (超省内存)
0.40000104904175
0.44710516929626
0.45367884635925

Ubuntu 16.04.3+Apache+PHP 7.4.0 (我的主力环境)
0.056440114974976
0.05810809135437
0.059491872787476

Ubuntu 16.04.3+Apache+PHP 7.3.9
0.08572793006897
0.10723900794983
0.09276294708252

Ubuntu 16.04.3+Apache+PHP 7.2.22
0.099550008773804
0.099750995635986
0.09430193901062

Ubuntu 16.04.3+Apache+PHP 7.1.32
0.10897207260132
0.1005711555481
0.091553211212158

Ubuntu 16.04.3+Apache+PHP 7.0.33
0.10013198852539
0.10001993179321
0.098648071289062

Ubuntu 16.04.3+Apache+PHP 5.6.40
0.24123692512512
0.23330211639404
0.2283730506897

Ubuntu 16.04.3+Nginx+PHP 7.4.0
0.052397966384888
0.056506156921387
0.057173013687134

Ubuntu 16.04.3+Nginx+PHP 7.3.9
0.10905909538269
0.10405087471008
0.096883058547974

Ubuntu 16.04.3+Nginx+PHP 7.2.22
0.10630106925964
0.098078966140747
0.10220098495483

Ubuntu 16.04.3+Nginx+PHP 5.6.40
0.27832102775574
0.2606189250946
0.2623918056488

Ubuntu 14.04+Apache+PHP 5.5.9 (自带源) (我的主力环境)
0.26224207878113
0.27070307731628
0.2564959526062

Ubuntu 12.04+Apache+PHP 5.3.10 (自带源) (我的主力环境,超省内存)
0.51135420799255
0.48402404785156
0.47420406341553

最后,发现一个很有趣的现象,Ubuntu 16.04.3,我在2016年时第一次使用VPS,那时候就已经有这个版本。一个月前,用自带源安装PHP,版本是7.0,Ubuntu 16+自带的PHP 7.0,有个bug,PHP不执行,这是所有系统里唯一一个PHP不执行的环境。

今天突然发现就在近期,大约是近期的几天里,Ubuntu 16的自带PHP安装源,已经更新为PHP 7.3.9

不过,如果要安装PHP 7,还是使用PHP 7.4好一点。Ubuntu、Debian下的PHP 7.4.0是PHP 7.3.9速度的1.9~2.1倍。

2019-10-04 07:35更新
今天用VMWare+Ubuntu 16.03在本机测试,果然,本机版的Ubuntu 16.03的PHP自带软件源,已经更新为PHP 7.3.9,和服务器版的Ubuntu 16.03一样。

国外很多VPS商家,提供的Ubuntu的最高版本目前仍然是Ubuntu 16,只有少数商家提供Ubuntu 18。
Ubuntu 16如今也是一个不错的选择。
Ubuntu 14无法安装PPA+PHP 7,所以能安装PHP 7的最低版本是Ubuntu 16。
Ubuntu 15、17已被抛弃,无法使用。
(更新完)

2019-10-04 10:03更新
各Linux系统开机、重启时间对比:
(测试方法,输入Shell命令:reboot。此时,同时按秒表开始计时。用CMD ping服务器,当出现ping值时,表示已经开机。由于切换不同的系统,需要重装一次系统,所以这项测试需要慢慢更新,每天更新一点。)

Ubuntu 12.048秒开机
Ubuntu 16.0411秒
Debian 8.5 Minimal15秒
Debian 9.1 Minimal10秒
CentOS 5.319秒
Debian 8.015秒
Debian 7.86秒

18条评论:
1   执迷不悟 2019-10-05 02:37
第一次尝试个人电脑安装Linux深度使用是用的Debian 9,据说很多大佬喜欢使用比例比较高。不过个人使用的VPS都是CentOS 7,看了勇哥的测试,考虑以后可以慢慢过度回Debian了哈哈。

自由勇 2019-10-05 07:24
是的,有的人用Debian很多年。
我用的时间不长,都是用服务器版。桌面版只用过CentOS 5、6,用的是远程桌面,因为我这边实在无法访问国外被wall的网站,需要登录Gmail修改设置时,就用CentOS 5、6远程桌面+火狐,Gmail平时转发到国内的邮箱。远程桌面使用特别慢。

2   自由勇 2019-10-05 07:52
我的服务器使用经历:
2001年开始 使用中华网、各大网站的免费空间,只支持HTML。
2002年9月 使用第1个收费主机,只支持HTML。
2002年10月 使用第2个收费主机,支持ASP。
2002年-2009年,使用国内ASP虚拟主机。
2009-2016年,使用国外PHP虚拟主机。
2016年8月-2018年11月,全部使用CentOS 5的VPS,超省内存,自带源PHP 5.1.6,速度也很快,比虚拟主机快很多。
这些VPS是年付$5.1,年付$8.75,比虚拟主机还便宜很多。
2018年11月至今,把所有CentOS 5的VPS都转到Ubuntu 12,本博文的测试结果,Ubuntu 12自带的PHP 5.3是CentOS 5自带的PHP 5.1速度的2倍多。果然,访问中还是有很明显的提升。内眼观察,大约快20%~30%。
2019年6月,使用Ubuntu 14,因为Ubuntu 12不再支持Let’s Encrypt。
2019年7月,使用Ubuntu 18+自带源PHP 7.2,速度有了明显的提升,之前一直用PHP 5。
2019年8月底,使用Ubuntu 16+PPA+PHP 7.4,支持rc.local,速度又有了明显的提升,速度是PHP 7.2、7.3的2倍。
2019年9月底,Debian 8.0+sury+PHP 7.4,比Ubuntu 16省了将近一半的内存,速度一样,支持rc.local。
3   j 2019-10-09 20:25
问一下,debian编译安装和源安装的两种方式性能会不会有差别

自由勇 2019-10-09 21:19
这个我没有试验过,理论上应该没有差别。因为这两者的安装过程其实一样,编译安装相当于手动配置,源安装相当于自动配置。

4   g 2019-10-10 21:54
这个其实可以理解为CentOS对KVM或OVZ的Guest支持不好。
也许是RHEL为了企业兼容性考虑,没有像标准内核那么激进。
5   Buster 2019-10-10 22:24
1998年开始用国内免费空间
1999年吧,第一次接触到红帽子,不过没玩下去
2004年开始用国内收费虚拟主机空间
可能是2006年之后同时又开始用国外免费虚拟空间
2018年才开始用海外VPS,并且正式接触到现代版本的CentOS
2019年开始摸到了Debian,目前为止用得次数较多的是Jessie和Buster,比较满意Buster,因为它的LEMP/LAMP软件比较令人满意(除了Apache离2.4.39只差0.0.01),连OpenSSL都已经到了1.1.1版

自由勇 2019-10-10 22:33
是的,使用VPS感觉太棒了!

6   简单生活 2019-12-13 18:53
这数据够详细的,已经用上7.4了!

自由勇 2019-12-15 08:00
7.4是很好的选择。

7   Hifon Yen 2019-12-13 19:00
如果出个傻瓜教程,不用告诉我为什么,只要告诉我如何一步步做。我也就能用上VPS了。
我基本只放静态网页(内容为文字和图片)和网页链接的文件(Excel文件、PDF文件、音频文件、视频文件(基本没有))。
我只是听说VPS快一点,以及带宽便宜点?

自由勇 2019-12-13 19:18
VPS的PHP+MySQL的主流三大系统、所有版本,前段时间我已经开发完一键安装包,还差后期的一点切换版本的开发,这是一个非商业项目。
最近忙不过来了,不然就会有一个全面的VPS从0秒变熟手的指南、教程上线。

自由勇 2019-12-13 19:22
VPS会快很多,因为能优化。VPS比虚拟主机便宜。

8   心灵博客 2019-12-14 07:32
其实我认为所测试的这些php性能都不重要,重要的是php与数据库交互,以及数据库查询
分析 读写所耗费的时间。
9   sagittaquas 2020-11-19 10:51
看了博主的文章让我对于 7.2, 7.4 有了比较明确的选择依据。
可能是工作性质的问题吧,其实建议国内PHPer应该多注意一些版权,性能,服务器安全,协议安全等方面的问题吧。
tls1.3 http/2, http/3-29。。。。
10   sagittaquas 2020-11-19 10:52
还有压缩算法、速度、网络占用、性能等等
11   CommandNotFound 2021-01-11 13:22
同样 PHP 7.4,为什么在 Debian,会比 CentOS 能快这么多?

自由勇 2021-01-11 13:34
具体原因未知,CentOS系统下有瓶颈。
PHP各版本,在Debian和Ubuntu下分别一样快。

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (41周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2021年01月(30)
2020年12月(19)
2020年11月(18)
2020年10月(15)
2020年09月(14)
2020年08月(14)
2020年07月(14)
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2021 auiou.com All rights reserved.
此Blog程序由王志勇编写