Kohana対Codeigniter、パフォーマンス合成

2つのすばらしい(そして私の控えめな意見では、すばらしい)フレームワーク、 KohanaCodeigniterのパフォーマンスを比較したいと思います。 このテストは総合的なものですが、私にはまだ興味深いようです。

試験条件


両方のフレームワークで、ビューを使用しませんでしたが、コントローラー内でのみ動作します。 DB:ローカルホスト上のPostgresql 8.3。 両方のコントローラーの形式は最も単純です。
最初のテストでは、333回の反復で単純なサイクルがあり、その中で、次の要求によってデータベースへの呼び出しが開始されました。
SELECT *
FROM tbl_clients
JOIN tbl_clients_recvisites ON tbl_clients.clientid = tbl_clients_recvisites.clientid
JOIN tbl_recvisites ON tbl_clients_recvisites.recvisiteid = tbl_recvisites.recvisiteid
JOIN tbl_clients_contacts ON tbl_clients.clientid = tbl_clients_contacts.clientid
JOIN tbl_contacts ON tbl_clients_contacts.contactid = tbl_contacts.contactid


* This source code was highlighted with Source Code Highlighter .

さらに、両方のコントローラーに統合されたプロファイラーが含まれていました。
2番目のテストではApache JMeterを使用しました

テスト1-エミュレーションなしの純粋な合成


各フレームワークで、アクションを10回(10回[F5])繰り返し、アプリケーションの結果を記録しました(配信時間は考慮されません-PHPのみが動作します)。 表の結果:
コードイグナイター小花
126,695914,808
226,604914,178
327,548714,289
426.742713,845
526,609914,554
626,564414,381
726.962213,717
826.882814,242
927.244513,771
1026.851414,479
平均26.8714.23

その他。 重要な注意 :Codeigniterはこのテストで1.74MBのRAM、Kohana-1.35MBを消費しました

テスト2-現実に迫る


このテストでは、JMeterを使用して同時リクエストをシミュレートしました。
テストは次のとおりでした。 各サブジェクト(CIおよびKOH)に対して、それぞれ5リクエストの10の同時フローが送信されました(フローで順番に実行されます)が、スタンドを「殺さない」ために、データベースクエリの数は333から9に削減されました(まあはい、3番が大好きです;))
最初のケースでは、フレームワークはプロファイラーデータを提供しましたが、送信されたバイトの量が異なることが判明したため、作業の完了後に両方のフレームワークが2バイト(「ok」)しか提供しない場合に2番目のシリーズのテストを実施しました。 各テストはJMeterで3回実行されました。
合計の表:
Codeigniter 9クエリプロファイラーが有効
平均(ミリ秒)分 (ミリ秒)マックス (ミリ秒)スループット(リクエスト/秒)Kb / s
3880249243702,557.17
3729253841052.659.5
3760260842632.659.04

Kohana 9プロファイラーリクエストが有効
平均(ミリ秒)分 (ミリ秒)マックス (ミリ秒)スループット(リクエスト/秒)Kb / s
2495110429903.927.62
2462123928733.927.89
248593329553.927.68

Codeigniter 9クエリ、output'ok '
平均(ミリ秒)分 (ミリ秒)マックス (ミリ秒)スループット(リクエスト/秒)Kb / s
3749277842412.60.01
3691218741112.60.01
3776304142082.60.01

Kohana 9検索、output'ok '
平均(ミリ秒)分 (ミリ秒)マックス (ミリ秒)スループット(リクエスト/秒)Kb / s
2451103528703.90.01
244599729243.90.01
2448126628833.90.01

これらの表からわかるように、アプリケーションの操作中に指定されたバイト数は、何の影響も及ぼしませんでした。

結論


誰もが自分自身で結論を出し、私はそのような類似した、しかし同時に異なるフレームワークをテストすることにしました。 私自身にとって、私はそれを作ったようです。
いずれの場合も、各作品に最適なツールがあることを忘れないでください...

Source: https://habr.com/ru/post/J49592/


All Articles