MixPHP/Yii/CodeIgniter 并发压力测试

栏目: PHP · 发布时间: 8年前

内容简介:MixPHP/Yii/CodeIgniter 并发压力测试

MixPHP 是一个基于 Swoole 的高性能框架,CodeIgniter 是一个元老级的轻量级框架,Yii 是一个非常流行的框架,以下是三个框架的对比。

由于Yii/CodeIgniter 是基于 Apache/PHP-FPM 的传统框架,如果使用 MixPHP 的正常 Swoole 部署方式来对比,显得有些不公平,由于 MixPHP 同时支持在 Apache/PHP-FPM 中运行,所以此次测试的 MixPHP 是部署在 Apache 之中。

环境

虚拟机: 4 核,1G

使用 ab 工具压测,命令:ab -n 5000 -c 100 URL

Yii

Yii 关闭了 debug,并设置为 pro 环境。

默认控制器代码如下,输出一个 Hello World。

<?php public function actionIndex() {     return 'Hello World'; }

CodeIgniter

默认控制器代码如下,输出一个 Hello World。

<?php public function index() {     echo 'Hello World'; }

MixPHP

默认控制器代码如下,输出一个 Hello World。

public function actionIndex() {     return 'Hello World'; }

开始测试

  1. 测试Yii, QPS: 56.40

C:/Server/apache24vc11/bin>ab -n 5000 -c 100 http://www.b.com/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/  Benchmarking www.b.com (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests   Server Software:        Apache/2.2.32 Server Hostname:        www.b.com Server Port:            80  Document Path:          / Document Length:        9 bytes  Concurrency Level:      100 Time taken for tests:   88.659 seconds Complete requests:      5000 Failed requests:        0 Total transferred:      1080000 bytes HTML transferred:       45000 bytes Requests per second:    56.40 [#/sec] (mean) Time per request:       1773.170 [ms] (mean) Time per request:       17.732 [ms] (mean, across all concurrent requests) Transfer rate:          11.90 [Kbytes/sec] received  Connection Times (ms)               min  mean[+/-sd] median   max Connect:        0    0   1.0      1      29 Processing:    14 1765 4200.5    688   48084 Waiting:       14 1610 3741.9    682   46690 Total:         14 1766 4200.5    688   48084 WARNING: The median and mean for the initial connection time are not within a normal deviation         These results are probably not that reliable.  Percentage of the requests served within a certain time (ms)   50%    688   66%   1087   75%   1400   80%   1657   90%   3029   95%   7665   98%  14760   99%  24300  100%  48084 (longest request)
  1. 测试 CodeIgniter , QPS: 144.42

C:/Server/apache24vc11/bin>ab -n 5000 -c 100 http://www.c.com/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/  Benchmarking www.c.com (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests   Server Software:        Apache/2.2.32 Server Hostname:        www.c.com Server Port:            80  Document Path:          / Document Length:        8 bytes  Concurrency Level:      100 Time taken for tests:   34.621 seconds Complete requests:      5000 Failed requests:        0 Total transferred:      1075000 bytes HTML transferred:       40000 bytes Requests per second:    144.42 [#/sec] (mean) Time per request:       692.419 [ms] (mean) Time per request:       6.924 [ms] (mean, across all concurrent requests) Transfer rate:          30.32 [Kbytes/sec] received  Connection Times (ms)               min  mean[+/-sd] median   max Connect:        0    0   0.7      1      22 Processing:     8  689 1014.3    480   13324 Waiting:        8  686 1012.2    478   13324 Total:          9  689 1014.3    480   13325 WARNING: The median and mean for the initial connection time are not within a normal deviation         These results are probably not that reliable.  Percentage of the requests served within a certain time (ms)   50%    480   66%    673   75%    810   80%    902   90%   1238   95%   1808   98%   3336   99%   6037  100%  13325 (longest request)
  1. 测试 MixPHP, QPS: 440.48

C:/Server/apache24vc11/bin>ab -n 5000 -c 100 http://www.a.com/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/  Benchmarking www.a.com (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests   Server Software:        Apache/2.2.32 Server Hostname:        www.a.com Server Port:            80  Document Path:          / Document Length:        12 bytes  Concurrency Level:      100 Time taken for tests:   11.351 seconds Complete requests:      5000 Failed requests:        0 Total transferred:      1025000 bytes HTML transferred:       60000 bytes Requests per second:    440.48 [#/sec] (mean) Time per request:       227.026 [ms] (mean) Time per request:       2.270 [ms] (mean, across all concurrent requests) Transfer rate:          88.18 [Kbytes/sec] received  Connection Times (ms)               min  mean[+/-sd] median   max Connect:        0    1   0.9      1      25 Processing:     4  222 822.4     15   10376 Waiting:        4  221 822.4     14   10376 Total:          4  222 822.4     16   10376  Percentage of the requests served within a certain time (ms)   50%     16   66%     69   75%    214   80%    364   90%    561   95%    762   98%    978   99%   1829  100%  10376 (longest request)

结论

虚拟机文件IO性能太差,Yii 做300并发直接不响应,只好降低到100并发数,同样架构的测试结果 MixPHP 领先。

你也来测试一下吧,https://github.com/mixstart/mixPHP

ITEM DESC
Yii 56.40 QPS
CodeIgniter 144.42 QPS
MixPHP 440.48 QPS

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链核心算法解析

区块链核心算法解析

【瑞士】Roger Wattenhofer(罗格.瓦唐霍费尔) / 陈晋川、薛云志、林强、祝庆 / 电子工业出版社 / 2017-8 / 59.00

《区块链核心算法解析》介绍了构建容错的分布式系统所需的基础技术,以及一系列允许容错的协议和算法,并且讨论一些实现了这些技术的实际系统。 《区块链核心算法解析》中的主要概念将独立成章。每一章都以一个小故事开始,从而引出该章节的内容。算法、协议和定义都将以形式化的方式描述,以便于读者理解如何实现。部分结论会在定理中予以证明,这样读者就可以明白为什么这些概念或算法是正确的,并且理解它们可以确保实现......一起来看看 《区块链核心算法解析》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具