ラベル fuelphp の投稿を表示しています。 すべての投稿を表示
ラベル fuelphp の投稿を表示しています。 すべての投稿を表示

2014年2月24日月曜日

最近気になるPHPフレームワークHelloWord性能比較大会

最近気になっているPHPフレームワークのベンチマークを取得してみました。
サーバやフレームワークなどのチューニングはほとんどしていないので、
結果は、あくまで参考程度としてください。

テスト環境

仮想環境 (1CPU memory 4GB)
PHP 5.5.9 (opcache使用)
NGINX 1.4.5

確認したコマンド※

ab -n 1000 -c 20 http://localhost.local/
※外部からではなく同じサーバで実施しています。

結果


Phalcon 1.2.6


Time taken for tests: 0.523 seconds
Requests per second: 1910.87 [#/sec]

FuelPHP 1.7


Time taken for tests: 1.704 seconds
Requests per second: 586.90 [#/sec]

Laravel 4.1


Time taken for tests: 6.171 seconds
Requests per second: 162.04 [#/sec]

php artisan optimizeで最適化
Time taken for tests: 4.925 seconds
Requests per second: 203.02 [#/sec]

Ruby on Rails 4.0.3 (特別ゲスト)


Time taken for tests: 2.851 seconds
Requests per second: 350.73 [#/sec]

Ruby On Rails4も含めてみました。
環境はPHPとは異なり次のとおりです。
NGINX 1.4.4
Passenger4.0.37
ruby 2.1.0

感想


Phalconが圧倒的な処理速度で1位です。
Laravelと比較すると約11倍以上速いですね。
FuelPHPはLaravel寄りではありますが、まずまずの性能です。

artisanコマンドで最適化されたLaravelでもそれほど大幅には変化がなかった(でもLaravel比だと25%アップ)ので、速度が出ないのは、autoloadが原因ということはなさそうです。
LaravelはIoC Containerというのが得意で、コードがきれいで書きやすいのですが、
それが原因かどうかはわかりませんがパフォーマンス面では他に劣るようです。
今のところPHPでもRailsと同様にパフォーマンスと便利な機能は相反するようですね。
またPhalconが速いのはC言語で実装されたフレームワークの部分だけなのでPHP部分はそんなに変わらないのではないかと思います。
結果はPhalconが目立ちすぎてますが、実際のロジックを実装した状態ではそこまでは差がないのではないかと考えています。
また、PhalconはC言語で実装されているので運用面でトラブルの際の調査も難しくなりそうで、
仕事に使うのはZephirで実装されるバージョン2.0までは様子をみようかと思っています。
Zephirは今後どうなるか気になるところです。
LaravelがZephirで実装されたりとか・・・、今のところその動きはなさそうですが。

Railsは、言語違いますがフルスタックのフレームワークの代表例として参考になるかと思って追加しました。
LaravelとFuelPHPの中間くらいで以前より速くなってますね。
RubyのVMが進化していたり、Rails自体もチューニングが進んでいるのかも。

いずれにせよ、現実的ではないHelloWorld程度の比較なので、
あまりこの結果を鵜呑みにしないようにご注意ください。



2013年4月7日日曜日

FuelPHP 1.5.2と1.5.3の差分

2013/3/8にFuelPHP 1.5.3が出てたので内容を確認してみた
セキュリティー関連の設定に変更があったようです。



手元の1.5.2とdiffしてみた。

Files fuelphp-1.5.2/docs/assets/js/combined.js
Only in fuelphp-1.5.3/fuel/app/cache: fuel
Files fuelphp-1.5.2/fuel/app/config/config.php
Only in fuelphp-1.5.3/fuel/app/logs: 2013
Only in fuelphp-1.5.3/fuel/app/views: person
Files fuelphp-1.5.2/fuel/core/classes/fuel.php
Files fuelphp-1.5.2/fuel/core/classes/security.php
Files fuelphp-1.5.2/fuel/core/config/config.php


差分確認して該当のファイルを置き換えればよさそうです。

2013年2月12日火曜日

FuelPHP 1.5.1と1.5.2の差分

FuelPHP 1.5.2が出たので内容を確認してみた。

Hotfix release v1.5.2
fixed autoloader not properly loading and initializing classes are an…

autoload関連のバグフィックスらしい
手元の1.5.1とdiffしてみた。

diff -qr fuelphp-1.5.1 fuelphp-1.5.2
// パスは省略
Only in fuelphp-1.5.2: .gitignore
Only in fuelphp-1.5.2: .gitmodules
Only in fuelphp-1.5.2/docs: .gitignore
docs/assets/js/combined.js
docs/installation/download.html
fuel/core/base.php
fuel/core/bootstrap.php
fuel/core/classes/autoloader.php
fuel/core/classes/session/driver.php
fuel/packages/log/classes/log.php


アップデートした方がよさそう。
coreとlog.phpはコピーしておこう。