热门IT资讯网

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博客应用性能对比分析详解的详细内容,更多请关注其它相关文章!

0