主流の PHP フレームワークのパフォーマンスに関する非権威テスト
PHP 開発者およびスタートアップ チームの技術開発者として、開発フレームワークの選択は重要です。とても難しいこと。
ThinkPHP では、訓練機関を卒業したばかりの開発者を採用することで始めることができますが、ポストコードからパフォーマンスを切り離すのは頭の痛い問題です。ただし、多くの専門家がすでに道を切り開いているため、サードパーティ関数の多くは自分で記述する必要はありません。
Laravel は非常に書きやすく、十分な拡張性があると言われていますが、学習コストが少し高く、若手開発者がフレームワークを学ぶのに半月も与えることはできません。さらに、Laravel のパフォーマンスはあまり良くなく、ドキュメントもそれほど充実していないことが業界関係者によって明らかにされていると言われています。
Yiiは構文が少し面倒で、フロントエンドとバックエンドのコードを分けるのが少し面倒ですが、パフォーマンスが非常に良く、すでに多くの国内大手企業で利用されています。何か予期せぬことが起こった場合、混乱した質問に答えてくれる専門家をすぐに見つけることができます。
簡単なパフォーマンス評価を行うことをお勧めします。優れたパフォーマンスのものを選択すると間違いはありません
テスト時間: 2016 年 5 月 6 日
テストツール: siege (MAC システムの ab ではエラー pr_socket_recv: Connection reverse bypeer (54) が常に発生するため、siege を選択しました)
テストマシン: MacPro Core i5 プロセッサ/8GB メモリ/256GB SSD フラッシュメモリ
テスト環境: Apache PHP5.6
フレームワークバージョン: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5
テスト原理: 各テストは 5 回ループします、中データを取る
補足: すべてのプロジェクトはサブディレクトリに配置されます
Transactions: 2119 hits 处理请求总数量Availability: 96.85 % 可用性Elapsed time: 9.74 secs 运行时间Data transferred: 1.31 MB 数据传输量Response time: 0.60 secs 响应时间Transaction rate: 217.56 trans/sec 每秒处理效率Throughput: 0.13 MB/sec 每秒处理数据Concurrency: 130.28 并发Successful transactions: 2162 成功的请求Failed transactions: 69 失败的请求Longest transaction: 2.85 最长的单个请求Shortest transaction: 0.01 最短的单个请求
最初に来ました 来たのはThinkPHP は大丈夫そうに見えました
Transactions: 500 hitsAvailability: 100.00 %Elapsed time: 2.81 secsData transferred: 52.45 MBResponse time: 0.26 secsTransaction rate: 177.94 trans/secThroughput: 18.67 MB/secConcurrency: 47.10Successful transactions: 500Failed transactions: 0Longest transaction: 0.48Shortest transaction: 0.03
次に Laravle が来ました、まあ、少しがっかりしました
Transactions: 500 hitsAvailability: 100.00 %Elapsed time: 13.33 secsData transferred: 52.45 MBResponse time: 1.27 secsTransaction rate: 37.51 trans/secThroughput: 3.93 MB/secConcurrency: 47.55Successful transactions: 500Failed transactions: 0Longest transaction: 3.64Shortest transaction: 0.07
最後のゲーム Yii
Transactions: 500 hitsAvailability: 100.00 %Elapsed time: 4.84 secsData transferred: 52.45 MBResponse time: 0.46 secsTransaction rate: 103.31 trans/secThroughput: 10.84 MB/secConcurrency: 47.65Successful transactions: 500Failed transactions: 0Longest transaction: 0.88Shortest transaction: 0.04
最初は ThinkPHP
Transactions: 1977 hitsAvailability: 98.85 %Elapsed time: 10.03 secsData transferred: 207.40 MBResponse time: 0.95 secsTransaction rate: 197.11 trans/secThroughput: 20.68 MB/secConcurrency: 187.68Successful transactions: 1977Failed transactions: 23Longest transaction: 1.22Shortest transaction: 0.02
次にLaravel
Transactions: 1890 hitsAvailability: 94.50 %Elapsed time: 51.85 secsData transferred: 198.27 MBResponse time: 4.88 secsTransaction rate: 36.45 trans/secThroughput: 3.82 MB/secConcurrency: 178.00Successful transactions: 1890Failed transactions: 110Longest transaction: 26.01Shortest transaction: 0.07
ついに Yii
Transactions: 1996 hitsAvailability: 99.80 %Elapsed time: 18.95 secsData transferred: 209.39 MBResponse time: 1.79 secsTransaction rate: 105.33 trans/secThroughput: 11.05 MB/secConcurrency: 188.57Successful transactions: 1996Failed transactions: 4Longest transaction: 3.29Shortest transaction: 0.10
ThinkPHP:
APP_DEBUG改为false
Laravel:
APP_DEBUG改为falsephp artisan route:cachephp artisan optimizephp artisan config:cachecomposer dumpautoload -o
Yii:
YII_DEBUG改为falsecomposer dumpautoload -o
ThinkPHP
Transactions: 1655 hitsAvailability: 82.75 %Elapsed time: 8.21 secsData transferred: 173.62 MBResponse time: 0.69 secsTransaction rate: 201.58 trans/secThroughput: 21.15 MB/secConcurrency: 139.29Successful transactions: 1655Failed transactions: 345Longest transaction: 7.83Shortest transaction: 0.00
Laravel:
Transactions: 1520 hitsAvailability: 76.00 %Elapsed time: 34.95 secsData transferred: 159.45 MBResponse time: 3.15 secsTransaction rate: 43.49 trans/secThroughput: 4.56 MB/secConcurrency: 136.84Successful transactions: 1520Failed transactions: 480Longest transaction: 19.18Shortest transaction: 0.00
Yii:
Transactions: 1704 hitsAvailability: 85.20 %Elapsed time: 15.16 secsData transferred: 178.76 MBResponse time: 1.46 secsTransaction rate: 112.40 trans/secThroughput: 11.79 MB/secConcurrency: 164.21Successful transactions: 1704Failed transactions: 296Longest transaction: 9.04Shortest transaction: 0.00
テスト中、私は落ち込んで、自分の世界観が崩壊し、崩壊寸前まで落ち込んだように感じました。
ThinkPHP のパフォーマンスは Yii の 2 倍、Yii のパフォーマンスは比較的平均的ですが、他の 2 つのフレームワークよりもリクエストの失敗が少ないことは明らかです。エレガントですが、パフォーマンスは心配です。ネチズンの言葉を借りれば、ライブで学習することに熱心な人々とそれを使用する人々は死にます
Transactions: 1672 hitsAvailability: 83.60 %Elapsed time: 6.18 secsData transferred: 175.40 MBResponse time: 0.57 secsTransaction rate: 270.55 trans/secThroughput: 28.38 MB/secConcurrency: 153.16Successful transactions: 1672Failed transactions: 328Longest transaction: 4.57Shortest transaction: 0.01
著者がより良い記事を書くためのヒントを提供します。ありがとうございます!著者がより良い記事を書けるようにサポートするためのヒント、ありがとう!著者に報酬を与える
著者について: Li Hutou
11Space で働いていました。 PHP アーキテクト、PPPHP フレームワーク作者の個人ホームページ · 私の記事 · 1 ·