美文网首页php程序员
主流php框架性能比较

主流php框架性能比较

作者: jamespengge | 来源:发表于2017-08-15 00:07 被阅读243次

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

    相关文章

      网友评论

      • yecodes:个人感觉很多时候瓶颈在数据库这块-.-
        jamespengge:@yecodes 是啊。php性能已经非常优秀了
      • 朴半仙:这点代码就定论框架的性能,应该差点火候。
        jamespengge:@朴半仙 这个只是能够说明每个框架的侧重点不一样。要是测试代码更多的话也是这样类似的结果
      • 产品星人周伯通:哇 介么晚更新 勤劳的小山羊吗

      本文标题:主流php框架性能比较

      本文链接:https://www.haomeiwen.com/subject/uhoprxtx.html