php7和php8在OpenLiteSpeed、nginx上的性能测试(包括是否开启opcache)
php8出来有一段时间了,被吹的神乎其神,正好今天在家哄孩子有点时间就测试了一下性能。
测试服务器为阿里云2核2G,其实测试的都是单核性能,几核几G其实关系不大。测试代码还是直接使用的以前的代码。如下。
<?php
function msec()
{
list($sec,$msec) = explode(' ', microtime());
return (floatval($sec) + floatval($msec)) ;
}
$s_time = msec();
function fib($n) {
if ($n == 1 || $n == 2) {
return 1;
}
return fib($n - 1) + fib($n - 2);
}
echo fib(40);
$e_time = msec();
echo '<br>';
echo $e_time - $s_time;
OpenLiteSpeed版本为 1.6.21,php版本是7.4和8.0,ngnix版本为1.20,全部是编译安装。测试结果如下。
| 环境 | 正常 | opcache | 横向对比 |
| OpenLiteSpeed php7.4 | 4.10560297966 | 3.7856299877167 | 1.08 |
| OpenLiteSpeed php8.0 | 4.316696882247 | 4.075221061706 | 1.06 |
| Nginx php7.4 | 17.157423019409 | 11.849323034286 | 1.45 |
| Nginx php8.0 | 16.670356035233 | 1.5372290611267 | 10.84 |
php7和php8在OpenLiteSpeed、nginx上的性能测试(包括是否开启opcache)总结:
1、php8.0在未开启opcache的时候和php7.4性能差距不大,在误差范围内,多次测试,略有提升。
2、php8.0在开启opcache的时候和php7.4对比性能提升极为显著,达到了10倍以上的提升,可以说是质的飞跃。
3、OpenLiteSpeed对php8以前版本的优化确实好,在php8.0加opcache的测试加入前对比ngnix获得了绝对的优势,4倍以上的性能提升,而且不需要开启opcache。
4、OpenLiteSpeed对php8.0的优化却不够,对比php7.4几乎没有提升。
5、OpenLiteSpeed中开启opcache对性能影响很小,甚至有些测试中还会降低。
建议:
如果程序兼容,尽可能升级php8,同时开启opcache,性能提升实在是太明显了。