主流phpフレームワークの性能比較

3333 ワード

今回比較テストを行ったのは以下の4種類のphpフレームワークです
  • thinkphp
  • ci
  • laveral
  • ppf

  • 最初の3つは市場で主流のphpフレームワークで、4つ目は私が書いた軽量級phpフレームワークです.siegeソフトウェアでの4つのフレームワークのテスト結果をテストしましょう.

    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 i 5
    メモリ:8 GB 1867 MHz DDR 3
    環境: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は2番目によく、非常に優れた安定性を示し、処理効率と合併数が非常に優れている.
    3.laravelという外国のフレームワークは処理効率が高くないが、同時性能は非常に優れている(ここでは、処理効率と同時性能が負の相関成長を示すと一般的な結論が得られる)