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のみが動作します)。 表の結果:

コードイグナイター 小花
1 26,6959 14,808
2 26,6049 14,178
3 27,5487 14,289
4 26.7427 13,845
5 26,6099 14,554
6 26,5644 14,381
7 26.9622 13,717
8 26.8828 14,242
9 27.2445 13,771
10 26.8514 14,479
平均 26.87 14.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
3880 2492 4370 2,5 57.17
3729 2538 4105 2.6 59.5
3760 2608 4263 2.6 59.04


Kohana 9プロファイラーリクエストが有効

平均(ミリ秒) 分 (ミリ秒) マックス (ミリ秒) スループット(リクエスト/秒) Kb / s
2495 1104 2990 3.9 27.62
2462 1239 2873 3.9 27.89
2485 933 2955 3.9 27.68


Codeigniter 9クエリ、output'ok '

平均(ミリ秒) 分 (ミリ秒) マックス (ミリ秒) スループット(リクエスト/秒) Kb / s
3749 2778 4241 2.6 0.01
3691 2187 4111 2.6 0.01
3776 3041 4208 2.6 0.01


Kohana 9検索、output'ok '

平均(ミリ秒) 分 (ミリ秒) マックス (ミリ秒) スループット(リクエスト/秒) Kb / s
2451 1035 2870 3.9 0.01
2445 997 2924 3.9 0.01
2448 1266 2883 3.9 0.01


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



結論



誰もが自分自身で結論を出し、私はそのような類似した、しかし同時に異なるフレームワークをテストすることにしました。 私自身にとって、私はそれを作ったようです。

いずれの場合も、各作品に最適なツールがあることを忘れないでください...




All Articles