2021 PHP框架与go框架最新性能压力测试比较

有人说PHP性能低?go语言性能高?到底谁高谁低数据说话!我们就来实际对比一下各PHP框架及一款go语言框架的性能是怎样的。

硬件: CPU:Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz 16核心。内存:16GB。

操作系统:Ubuntu 18.04

PHP版本:7.4

PHP框架最新输出hello world压力测试结果:

框架 版本 方式 web服务器 参数 RPS 参数 RPS
laravel 8.x web nginx ab -n 10000 -c 100 -k 1000 ab -n 100000 -c 1000 -k 1000
symfony 4.4 web nginx ab -n 10000 -c 100 -k 2300 ab -n 100000 -c 1000 -k 2300
symfony 4.4 api nginx ab -n 10000 -c 100 -k 4800  ab -n 100000 -c 1000 -k 4800
CI 4.0 web nginx ab -n 10000 -c 100 -k 4800  ab -n 100000 -c 1000 -k 4800
thinkphp 6.0 web nginx ab -n 10000 -c 100 -k 2400 ab -n 100000 -c 1000 -k 2400
lumen 7.2 api nginx ab -n 10000 -c 100 -k 6000 ab -n 100000 -c 1000 -k 5500
ubiquity 2.3 web nginx ab -n 10000 -c 100 -k 6600 ab -n 100000 -c 1000 -k 6400
phalcon 3.4.4   nginx ab -n 10000 -c 100 -k   ab -n 100000 -c 1000 -k  
webman 1.0 web php-cli ab -n 10000 -c 100 -k 31000  ab -n 100000 -c 1000 -k 30000
mixphp 2.2 web php-cli ab -n 10000 -c 100 -k 41000  ab -n 100000 -c 1000 -k 44000
go-zero 1.1.1 api go语言 ab -n 10000 -c 100 -k 20000   ab -n 100000 -c 1000 -k 25000

*mixphp为基于swoole 4.5的框架,开启多核与端口复用(并不是核心越多性能越高,以上开了4核)

PHP框架最新模板渲染输出hello world压力测试结果:

框架 版本 方式 web服务器 参数 RPS 参数 RPS
laravel 8.x web  nginx ab -n 10000 -c 100 -k 1000 ab -n 100000 -c 1000 -k 1000
symfony 4.4 web  nginx ab -n 10000 -c 100 -k 2200 ab -n 100000 -c 1000 -k 2200
CI 4.0 web  nginx ab -n 10000 -c 100 -k 4700 ab -n 100000 -c 1000 -k 4700
thinkphp 6.0 web  nginx ab -n 10000 -c 100 -k 2300 ab -n 100000 -c 1000 -k 2300
lumen 7.2 api  nginx ab -n 10000 -c 100 -k 4600 ab -n 100000 -c 1000 -k 4600
ubiquity 2.3 web  nginx ab -n 10000 -c 100 -k 6500 ab -n 100000 -c 1000 -k 6400
phalcon 3.4.4    nginx ab -n 10000 -c 100 -k   ab -n 100000 -c 1000 -k  
webman 1.0 web php-cli ab -n 10000 -c 100 -k 31000  ab -n 100000 -c 1000 -k 31000
mixphp  2.2 web php-cli ab -n 10000 -c 100 -k 21000  ab -n 100000 -c 1000 -k 25000

 

PHP框架最新读取mysql 5.7数据库压力测试结果:

框架 版本 方式 web服务器 参数 RPS 参数 RPS 说明
laravel 8.x web nginx ab -n 10000 -c 100 -k 800 ab -n 100000 -c 1000 -k 700  DB::table()->get()
symfony 4.4 web nginx ab -n 10000 -c 100 -k 1300 ab -n 100000 -c 1000 -k 1300  
symfony 5.2 api nginx ab -n 10000 -c 100 -k 1900 ab -n 100000 -c 1000 -k 1900  
CI 4.0 web nginx ab -n 10000 -c 100 -k 2900 ab -n 100000 -c 1000 -k 2900  
thinkphp 6.0 web nginx ab -n 10000 -c 100 -k 1500 ab -n 100000 -c 1000 -k 1500  
lumen 7.2 api nginx ab -n 10000 -c 100 -k 2500 ab -n 100000 -c 1000 -k 2500  
ubiquity 2.3 web nginx ab -n 10000 -c 100 -k 5500 ab -n 100000 -c 1000 -k 5600  
phalcon 3.4.4   nginx ab -n 10000 -c 100 -k   ab -n 100000 -c 1000 -k    
webman 1.0 web php-cli ab -n 10000 -c 100 -k 28000  ab -n 100000 -c 1000 -k 31000  
mixphp  2.2 web php-cli ab -n 10000 -c 100 -k 23000  ab -n 100000 -c 1000 -k 25000  

*从mysql数据库的用户表,读取约10个用户名后,循环输出(不经过模板渲染)。

*ubiquity:如果用了php7.4 preloading 有性能高达50-60%的性能提升.

附图:

2021 PHP框架与go框架最新性能压力测试比较_第1张图片

2021 PHP框架与go框架最新性能压力测试比较_第2张图片

2021 PHP框架与go框架最新性能压力测试比较_第3张图片

2021 PHP框架与go框架最新性能压力测试比较_第4张图片

2021 PHP框架与go框架最新性能压力测试比较_第5张图片

2021 PHP框架与go框架最新性能压力测试比较_第6张图片

2021 PHP框架与go框架最新性能压力测试比较_第7张图片

2021 PHP框架与go框架最新性能压力测试比较_第8张图片

2021 PHP框架与go框架最新性能压力测试比较_第9张图片

说明:

0.以上各框架都为下载框架后,按各框架默认安装方式安装好,同时关闭debug模式,无其它性能优化情况下进行测试,同时关闭nginx的 access log。
1.为了测试准确,laravel 的SESSION_DRIVER不要设置为file,这里设置为array,否则会由于大量磁盘IO会造成结果比较低。
2.Mysql的连接数要设置足够大,不然会出错完不成压力测试。
3.如果由于高并发出现php-fpm错误:connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable),请修改参数:
1)内核修改
sudo vim /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog = 4096
net.core.netdev_max_backlog = 4096
sudo sysctl -p生效
2)php-fpm配置修改
修改 /etc/php/7.4/fpm/pool.d/www.conf
listen.backlog = 4096
sudo service php-fpm7.4 restart
4.此测试结果保证严谨,此压力测试前前后后大约一年内时间经历了好几轮测试,此为2021最新版本结果。每个框架的结果误差大约在100以内。

结论:

go的框架没有比过php框架。

ubiquity:(https://ubiquity.kobject.net/) ,做为一个纯PHP框架,目前是传统PHP框架中性能最高的。

webman(https://www.workerman.net/doc/webman),mixphp(swoole)框架为cli模式,因为是长驻内存,所以性能最高,并在hello world测试中超过了go语言的go-zero框架。

如果你用的是laravel技术栈,那么在做接口时,强烈建议用laravel的微框架lumen,除具有非常高的性能外,还具有laravel的大部分功能,并且可以极容易升级到laravel框架。

ps:https://github.com/lizhichao/one (此框架性能也很高。)

最后更新时间:2021.01.15

原创文章,转载请注明:来自Lenix的博客,地址https://blog.p2hp.com/archives/6906

你可能感兴趣的:(php,php)