6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Lumenって無条件に速いの?

Last updated at Posted at 2015-08-13

Lumenは早い。まあ、これは間違いないと思うのですが、結局.env読み込んだり、FacadeやEloquent読み込んだりしたら、Laravelと同じじゃないの?と思い、計測してみました。

試したのは

##テスト条件

Lumen, Laravelともにローカル環境でビルトインサーバを立ち上げ、

php artisan serve

abコマンドで、

ab -n 100 -c 100 htpp://localhost:8000/

という条件で、下記の場合のでRequest per secondの値をチェックしてみました。

  • 素のLumen
  • .envをloadしたLumen
  • .env + ->withFacadeをコメントインしたLumen
  • .env + Facade + ->withEloquentをコメントインしたLumen
  • 素のLaravel

マシンは、

iMac 2009(古め)
Core i5 2.6MHz
32GB RAM
SSD

まあ、SSDなので、同型番のマシンよりは少々早いかなと。

##結果

###素のLumen

Requests per second: 107.17 [#/sec] (mean)

早いか、遅いかはわかりませんが、まあ、1つの基準値。

###.evnをloadしたLumen

Requests per second: 103.04 [#/sec] (mean)

まあ、処理が増えた分、少し低下

###.env + ->withFacadeをコメントインしたLumen

Requests per second: 88.51 [#/sec] (mean)

結構下がりました。

###.env + Facade + ->withEloquentをコメントインしたLumen

ガクンときました。スピード重視ならそもそもquerybuilder使ったほうがいいのかも。

Requests per second: 53.20 [#/sec] (mean)

###素のLaravel

Requests per second: 15.18 [#/sec] (mean)

遅っ!。まあ、Lumenが早いということで。。。

##まとめ
まあ、突っ込みどころは多いですが、相対的には一定の参考値は得られたかなと。

開発の生産性に大きく影響する.env, Facade, Eloquentを読み込んだ場合でも、速度は低下するとはいえ、Laravelの3倍以上早い(3倍のトラフィックをこなせる)ので、Lumenを利用する意味はあるかなと。

今度はもっと実用的なコードでテストしてみたいと思います。

##参考値(追記)

その後、LumenでDBアクセスして、bladeで出力するサンプルを書いてみました。その結果は、

###Lumen + QueryBuilder

Requests per second: 29.41 [#/sec] (mean)

少なくとも素のLaravelより早い。

###Lumen + Eloquent

Requests per second: 25.23 [#/sec] (mean)

QueryBuilderに比べれば落ちるが、素のLaravelよりは早い。

###巣のHello World

素のPHPのHello Worldを試してみた。

Requests per second: 11664.53 [#/sec] (mean)

うーん。1万以上。ここまで違うなら普通のAPI作るならオールドスタイルで書くのがいいのかな。

6
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?