CakePHP1と2のパフォーマンスを比較
CakePHP2.2になったので、1.3, 2.0, 2.1, 2.2で比較しました。
比較したコードは、postsテーブルをbakeしただけの単純なものです。
https://github.com/ichikaway/CakePHP-PerformanceCheckSample
この画面のように、ページング処理が入ったindexアクションを対象に計測しました。
DBには25,000件のレコードが入れてあり、その中から同じ20件を抽出して表示するアプリで比較しています。
環境
サーバ構成
計測
Siegeというabのような計測ツールを利用しました。
下記のコマンドを実行。
siege -b -c 10 -t 3S
同時接続10クライアントで、3秒間の間にアクセスを発生し続けるという意味です。
これによって、1秒間に何アクセスさばけたのかというtrans/secが出ます。
計測は、同一サーバ内から行いました。本当は別のマシンから実行したほうが良いのですが、準備も大変ですし、単純に同じ環境で比較するのであれば、パフォーマンスの差を測るには大きな影響がないと思ってやっていません。
結果
このような結果になりました。値が大きいほどパフォーマンスが良いという意味です。
- CakePHP1.3.11
- 28trans/sec
- CakePHP2.0.4
- 40trans/sec
- CakePHP2.1.0
- 38trans/sec
- CakePHP2.2.1
- 34trans/sec
1.3からのパフォーマンスは最大40%アップ(cake2.0)でした。CakePHP2もバージョンがあがるごとに機能が増えているので、速度の低下がありました。
今後は2.2.1でボトルネックになっている箇所を見ていきたいと思います。