关于PHP7.0与PHP5.6下Laravel博客应用性能对比分析详解
Laravel  /  管理员 发布于 7年前   113
该版本 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 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: nginx/1.8.0 Server Hostname: blog.app Server Port: 80 Document Path: / Document Length: 324 bytes Concurrency Level: 100 Time taken for tests: 69.354 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 19851388 bytes HTML transferred: 10230000 bytes Requests 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] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 3 Processing: 17 684 319.1 588 2720 Waiting: 17 684 319.1 588 2720 Total: 20 684 319.1 588 2720 Percentage 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 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: nginx/1.8.0 Server Hostname: blog.app Server Port: 80 Document Path: / Document Length: 324 bytes Concurrency Level: 100 Time taken for tests: 45.032 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 20101202 bytes HTML transferred: 10230000 bytes Requests 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] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 4 Processing: 11 443 252.8 379 1978 Waiting: 11 443 252.8 379 1978 Total: 15 443 252.8 379 1978 Percentage 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%,这是一个很显著的性能提升,当然环境不同数据会有所出入,而且还有更大的提升空间。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号