主流php框架性能比较

这次我们进行比较测试的有以下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 这个外国框架处理效率不高,但是并发性能非常优秀(这里可以得出一般结论就是:处理效率跟并发性能呈负相关增长)

你可能感兴趣的:(主流php框架性能比较)