9.5 KiB
真实世界WordPress PHP 5.5 PHP5.6 PHP-NG和HHVM基准测试
长篇摘要:在一个基于Vagrant的本地环境中,可能是某个错误的原因,导致HHVM测试结果丢失了;在HHVM伙伴们协助下,该原因仍在研究中!然而,在数字海洋的一个4GB容器中,它甚至盖过了最新版的PHP-NG的风头!
**更新:请查看文章结尾的结果!它们反映出HHVM的功效更佳(在JIT热机后),虽然处于某些原因,我们不能在所有装备中获取这些结果。
下面的测试是在Vagrant/VVV环境中进行的,结果仍然令人关注。也许是HHVM或Vagrant配置中的某个错误,导致它不能以高速运行,我们正和HHVM的伙计们一起研究该问题。**
如果你记得我们在几个月前写过一篇文章,那时WordPress 3.9表明是完全支持HHVM的,当时是那么令我们欢欣鼓舞。最初的基准测试结果显示,HHVM要比驱动着当前所有PHP构建的Zend引擎高级得多。后来,问题就出来了:
- HHVM只能以单个用户运行,这意味着(在共享环境中)安全性差了
- HHVM在崩溃后不会自动重启,而不幸的是,它至今仍然经常发生
- HHVM在启动时使用大量内存,而当你把它和PHP-FPM规模比较后会发现,它单个请求的内存使用量却更低。
很显然,你不得不根据你的(或者更确切地说是你的站点)的需求采取折中方案,然而这值得吗?切换到HHVM后,你期望获得多少性能改善呢?
在Kinsta,我们真的想要测试所有新技术,并通常会优化这一切来为我们的客户提供最佳的环境。今天,我最终花了点时间来配置测试环境并进行了一些测试来对比两个不同的构建,一个是全新出炉的WordPress安装,另外一个则添加了大量内容的WooCommerce!为了计量脚本的运行时间,我只是简单地添加了
<?php timer_stop(1); ?>
这一行到footer.php的/body标记前。
注意: 前面这一章节包含了Vagrant/Virtualbox/Ubuntu14.04的基准测试,然而出于某些原因,HHVM真的表现得很差,也许是某个错误所导致,又或许是虚拟化环境的限制。我们感到,这些测试结果并不反映真实情况,因此我们在云服务器上再次进行了测试,并考虑了这些情况的合理性。
这里是配置环境的详情:
- 数字海洋4GB雨滴容器 (2 CPU核心, 4GB RAM)
- Ubuntu 14.04, MariaDB10
- 测试站点: 已导入演示内容的Munditia主题,WooCommerce 2.1.12 & WordPress 3.9.1
- PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG (20140718-git-6cc487d)和HHVM 3.2.0 (版本中说是PHP 5.6.99-hhvm)
没有进一步大费周章,这些就是我的测试结果,数值越低越好,以秒为单位:
数字海洋4GB雨滴容器
秒,运行10次,越低越好
这里有一个canvas的数据,发布的时候需要截一个图
看起来似乎PHP-NG在它首次运行后就获得了峰值性能!HHVM需要更多几次重载,但是它们的性能貌似差不多!我等不到PHP-NG合并到主进程了!:)
一分钟命中,越高越好。
这里有一个canvas的数据,发布的时候需要截一个图
PHP 5.5.15禁用OpCache
- 执行: 236 hits
- 可用性: 100.00 %
- 消耗时间: 59.03 secs
- 传输的数据: 2.40 MB
- 回应时间: 2.47 secs
- 执行率: 4.00 trans/sec
- 吞吐量: 0.04 MB/sec
- 并发数: 9.87
- 成功的执行: 236
- 失败的执行: 0
- 最长执行: 4.44
- 最短执行: 0.48
PHP 5.5.15启用OpCache
- 执行: 441 hits
- 可用性: 100.00 %
- 消耗时间: 59.55 secs
- 传输的数据: 4.48 MB
- 回应时间: 1.34 secs
- 执行率: 7.41 trans/sec
- 吞吐量: 0.08 MB/sec
- 并发数: 9.91
- 成功的执行: 441
- 失败的执行: 0
- 最长执行: 2.19
- 最短执行: 0.64
PHP 5.6 RC2禁用OpCache
- 执行: 207 hits
- 可用性: 100.00 %
- 消耗时间: 59.87 secs
- 传输的数据: 2.10 MB
- 回应时间: 2.80 secs
- 执行率: 3.46 trans/sec
- 吞吐量: 0.04 MB/sec
- 并发数: 9.68
- 成功的执行: 207
- 失败的执行: 0
- 最长执行: 3.65
- 最短执行: 0.54
PHP 5.6 RC2启用OpCache
- 执行: 412 hits
- 可用性: 100.00 %
- 消耗时间: 59.03 secs
- 传输的数据: 4.18 MB
- 回应时间: 1.42 secs
- 执行率: 6.98 trans/sec
- 吞吐量: 0.07 MB/sec
- 并发数: 9.88
- 成功的执行: 412
- 失败的执行: 0
- 最长执行: 1.93
- 最短执行: 0.34
HHVM 3.2.0(版本说是PHP 5.6.99-hhvm)
- 执行: 955 hits
- 可用性: 100.00 %
- 消耗时间: 59.69 secs
- 传输的数据: 9.18 MB
- 回应时间: 0.62 secs
- 执行率: 16.00 trans/sec
- 吞吐量: 0.15 MB/sec
- 并发数: 9.94
- 成功的执行: 955
- 失败的执行: 0
- 最长执行: 0.85
- 最短执行: 0.23
PHP-NG启用OpCache(构建: Jul 29 2014)
- 执行: 849 hits
- 可用性: 100.00 %
- 消耗时间: 59.88 secs
- 传输的数据: 8.63 MB
- 回应时间: 0.70 secs
- 执行率: 14.18 trans/sec
- 吞吐量: 0.14 MB/sec
- 并发数: 9.94
- 成功的执行: 849
- 失败的执行: 0
- 最长执行: 1.06
- 最短执行: 0.13
注意: 这些是先前的测试结果,它们不真实。我放在这里用于将来的参考,但是请不要将这些值当作真实的表现!
这里是配置环境的详情:
- 苹果MacBook Pro mid-2011 (Intel Core i7 2 GHz 4 cores, 4GB RAM, 256GB Ocz Vertex 3 MI)
- 当前修改中的Vagrant,带有Ubuntu 14.04, nginx 1.6.x, mysql 5.5.x等的Vagrants构建
- 测试站点 1: WordPress 3.9.1最小化裸版
- 测试站点 2: 导入演示内容的Munditia主题,WooCommerce 2.1.12 & WordPress 3.9.1
- PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG (20140718-git-6cc487d)和HHVM 3.2.0 (版本中说是PHP 5.6.99-hhvm)
默认主题,默认的WordPress 3.9.1, PHP 5.5.9-1ubuntu4.3 (带有OpCache 7.0.3)
错误结果,请阅读上面的说明!
秒,10次运行,越低越好。
这里有一个canvas的数据,发布的时候需要截一个图
导入演示内容的Munditia主题,WooCommerce 2.1.12 & WordPress 3.9.1(禁用OpCache)
错误结果,请阅读上面的说明!
秒,10次运行,越低越好。
这里有一个canvas的数据,发布的时候需要截一个图
导入演示内容的Munditia主题,WooCommerce 2.1.12 & WordPress 3.9.1(启用OpCache)###
错误结果,请阅读上面的说明!
秒,10次运行,越低越好。
这里有一个canvas的数据,发布的时候需要截一个图
Siege参数:1分钟10个并发用户:siege -c 10 -b -t 1M
错误结果,请阅读上面的说明!
一分钟命中,越高越好。
这里有一个canvas的数据,发布的时候需要截一个图
PHP5.5禁用OpCache(PHP 5.5.15-1+deb.sury.org~trusty+1)错误结果,请阅读上面的说明!
- 执行: 35 hits
- 可用性: 100.00 %
- 消耗时间: 59.04 secs
- 传输的数据: 2.03 MB
- 回应时间: 14.56 secs
- 执行率: 0.59 trans/sec
- 吞吐量: 0.03 MB/sec
- 并发数: 8.63
- 成功的执行: 35
- 失败的执行: 0
- 最长执行: 18.73
- 最短执行: 5.80
HHVM 3.2.0 (version says PHP 5.6.99-hhvm)错误结果,请阅读上面的说明!
- 执行: 44 hits
- 可用性: 100.00 %
- 消耗时间: 59.53 secs
- 传输的数据: 0.42 MB
- 回应时间: 12.00 secs
- 执行率: 0.74 trans/sec
- 吞吐量: 0.01 MB/sec
- 并发数: 8.87
- 成功的执行: 44
- 失败的执行: 0
- 最长执行: 13.40
- 最短执行: 2.65
PHP5.5启用OpCache(PHP 5.5.15-1+deb.sury.org~trusty+1 with OpCache 7.0.4-dev)错误结果,请阅读上面的说明!
- 执行: 100 hits
- 可用性: 100.00 %
- 消耗时间: 59.30 secs
- 传输的数据: 5.81 MB
- 回应时间: 5.69 secs
- 执行率: 1.69 trans/sec
- 吞吐量: 0.10 MB/sec
- 并发数: 9.60
- 成功的执行: 100
- 失败的执行: 0
- 最长执行: 7.25
- 最短执行: 2.82
PHP5.6启用OpCache(PHP 5.6.0RC2 with OpCache 7.0.4-dev)错误结果,请阅读上面的说明!
- 执行: 103 hits
- 可用性: 100.00 %
- 消耗时间: 59.99 secs
- 传输的数据: 5.98 MB
- 回应时间: 5.51 secs
- 执行率: 1.72 trans/sec
- 吞吐量: 0.10 MB/sec
- 并发数: 9.45
- 成功的执行: 103
- 失败的执行: 0
- 最长执行: 6.87
- 最短执行: 2.52
PHP-NG启用OpCache(20140718-git-6cc487d)错误结果,请阅读上面的说明!
- 执行: 124 hits
- 可用性: 100.00 %
- 消耗时间: 59.32 secs
- 传输的数据: 7.19 MB
- 回应时间: 4.58 secs
- 执行率: 2.09 trans/sec
- 吞吐量: 0.12 MB/sec
- 并发数: 9.57
- 成功的执行: 124
- 失败的执行: 0
- 最长执行: 6.86
- 最短执行: 2.24
你觉得这测试怎样?我遗漏了什么没有?下一篇基准测试文章中你想看到什么呢?请在下面评论中回复!
via: https://kinsta.com/blog/real-world-wordpress-benchmarks-with-php5-5-php5-6-php-ng-and-hhvm/
作者:Mark Gavalda 译者:GOLinux 校对:校对者ID