这次我们进行比较测试的有以下4种php框架
- thinkphp
- ci
- laveral
- ppf
前三个是市面上主流的php框架,第四种就是我写的轻量级php框架,我们一起来测试下4种框架在siege软件中的测试结果吧。
siege如何进行压力测试
简单介绍下Siege命令常用参数
-c 100 指定并发数100
-r 5 指定测试的次数5
-f urls.txt 制定url的文件
-i internet系统,随机发送url
-t 30s 持续测试30秒
# -r和-t一般不同时使用
这次我们使用如下的参数搭配:./siege -c 100 -t 30s
测试环境
主机:MacBook Pro
处理器:2.7 GHz Intel Core i5
内存:8 GB 1867 MHz DDR3
环境:nginx/1.10.1
其他:以上4个都设置了nginx vhost虚拟目录。
4大框架版本以及说明
- thinkphp 版本: thinkphp_5.0.5_full
- ci 版本:3.1.5
- laveral 版本:5.4
- ppf 版本 1.3.0
测试代码
$time1 = microtime(true);
$a = array();
for($i=0;$i<600000;$i++){
$a[$i] = $i;
}
$time2 = microtime(true);
echo $time2-$time1;die;
测试结果如下:
./siege -c 100 -t 30s http://ci.com
Transactions: 928 hits 处理请求总数量
Availability: 100.00 % 可用性
Elapsed time: 29.41 secs 运行时间
Data transferred: 0.01 MB 数据传输量
Response time: 2.51 secs 响应时间
Transaction rate: 31.55 trans/sec 每秒处理效率
Throughput: 0.00 MB/sec 每秒处理数据
Concurrency: 79.23 并发
Successful transactions: 928 成功的请求
Failed transactions: 0 失败的请求
Longest transaction: 3.46 最长的单个请求
Shortest transaction: 0.08 最短的单个请求
./siege -c 100 -t 30s http://thinkphp.com/
Transactions: 1039 hits
Availability: 100.00 %
Elapsed time: 29.14 secs
Data transferred: 0.02 MB
Response time: 2.17 secs
Transaction rate: 35.66 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 77.32
Successful transactions: 1039
Failed transactions: 0
Longest transaction: 3.33
Shortest transaction: 0.16
./siege -c 100 -t 30s http://ppf.com/
Transactions: 1336 hits
Availability: 100.00 %
Elapsed time: 29.59 secs
Data transferred: 0.02 MB
Response time: 1.61 secs
Transaction rate: 45.15 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 72.81
Successful transactions: 1336
Failed transactions: 0
Longest transaction: 2.52
Shortest transaction: 0.08
./siege -c 100 -t 30s http://laravel.com/
Transactions: 534 hits
Availability: 100.00 %
Elapsed time: 29.81 secs
Data transferred: 0.01 MB
Response time: 4.70 secs
Transaction rate: 17.91 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 84.13
Successful transactions: 534
Failed transactions: 0
Longest transaction: 6.69
Shortest transaction: 0.18
得出简单的结论
1.ppf在每秒处理的效率以及相应时间来看是4个中最高的(毕竟代码少。。),但是处理并发并不是很出色,具体框架使用可以查看ppf手册
2.thinkphp表现的第二好,十分出众的稳定性,处理效率跟并发数都非常优秀
3.laravel 这个外国框架处理效率不高,但是并发性能非常优秀(这里可以得出一般结论就是:处理效率跟并发性能呈负相关增长)
网友评论