PHP7.0与PHP5.6下Laravel博客的应用性能对比介绍
发表于:2024-11-27 作者:热门IT资讯网编辑
编辑最后更新 2024年11月27日,这篇文章主要为大家详细介绍了PHP7.0与PHP5.6下Laravel博客的应用性能对比,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。目前我安装的 Homestead
这篇文章主要为大家详细介绍了PHP7.0与PHP5.6下Laravel博客的应用性能对比,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
目前我安装的 Homestead 虚拟机版本是 2.1.8:
该版本 Homestead 上预装的 PHP 版本是 5.6.15:
我们使用 ab 命令(Apache 提供的性能测试工具)在该版本中测试 Laravel 应用(以目前正在讲的使用Laravel开发的博客应用为例)性能,我们模拟 10000 次请求,100 个并发进行压力测试:
ab -n 10000 -c 100 http://blog.app/
运行结果如下:
This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking blog.app (be patient)Completed 1000 requestsCompleted 2000 requestsCompleted 3000 requestsCompleted 4000 requestsCompleted 5000 requestsCompleted 6000 requestsCompleted 7000 requestsCompleted 8000 requestsCompleted 9000 requestsCompleted 10000 requestsFinished 10000 requestsServer Software: nginx/1.8.0Server Hostname: blog.appServer Port: 80Document Path: /Document Length: 324 bytesConcurrency Level: 100Time taken for tests: 69.354 secondsComplete requests: 10000Failed requests: 0Total transferred: 19851388 bytesHTML transferred: 10230000 bytesRequests per second: 144.19 [#/sec] (mean)Time per request: 693.545 [ms] (mean)Time per request: 6.935 [ms] (mean, across all concurrent requests)Transfer rate: 279.52 [Kbytes/sec] receivedConnection Times (ms) min mean[+/-sd] median maxConnect: 0 0 0.2 0 3Processing: 17 684 319.1 588 2720Waiting: 17 684 319.1 588 2720Total: 20 684 319.1 588 2720Percentage of the requests served within a certain time (ms) 50% 588 66% 695 75% 842 80% 933 90% 1155 95% 1321 98% 1545 99% 1813 100% 2720 (longest request)
这里我们要关注的是红色加粗的文字,即每秒处理请求数,这是衡量系统性能的关键指标。根据系统及硬件配置的差异,数据会有些出入。
现在我们按照"Laravel Homestead 支持 PHP 7 "这一节所述将 Homestead 中的 PHP 升级到 7.0 版本。
使用 vagrant ssh 登录到新添加的 homestead-7 虚拟机,查看 PHP 版本信息是否正确:
此时在浏览器中访问 http://blog.app 会报错,因为新安装的 Homestead 数据库数据为空,需要登录到虚拟机运行如下命令运行迁移并填充数据:
php artisan migrate php artisan db:seed
再次访问就OK了,好了我们继续使用同样的 ab 命令进行压力测试:
ab -n 10000 -c 100 http://blog.app/
运行结果如下:
This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking blog.app (be patient)Completed 1000 requestsCompleted 2000 requestsCompleted 3000 requestsCompleted 4000 requestsCompleted 5000 requestsCompleted 6000 requestsCompleted 7000 requestsCompleted 8000 requestsCompleted 9000 requestsCompleted 10000 requestsFinished 10000 requestsServer Software: nginx/1.8.0Server Hostname: blog.appServer Port: 80Document Path: /Document Length: 324 bytesConcurrency Level: 100Time taken for tests: 45.032 secondsComplete requests: 10000Failed requests: 0Total transferred: 20101202 bytesHTML transferred: 10230000 bytesRequests per second: 222.06 [#/sec] (mean)Time per request: 450.319 [ms] (mean)Time per request: 4.503 [ms] (mean, across all concurrent requests)Transfer rate: 435.91 [Kbytes/sec] receivedConnection Times (ms) min mean[+/-sd] median maxConnect: 0 0 0.2 0 4Processing: 11 443 252.8 379 1978Waiting: 11 443 252.8 379 1978Total: 15 443 252.8 379 1978Percentage of the requests served within a certain time (ms) 50% 379 66% 517 75% 590 80% 631 90% 795 95% 938 98% 1060 99% 1229 100% 1978 (longest request)
经过对比,同一个 Laravel 应用在 PHP 7.0 下的性能比 PHP 5.6 提高了54%,这是一个很显著的性能提升,当然环境不同数据会有所出入,而且还有更大的提升空间。
以上就是关于PHP7.0与PHP5.6下Laravel博客应用性能对比分析详解的详细内容,更多请关注其它相关文章!