Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Laravel で 最適化 高速化 手法一覧

色々あったので備忘録的にまとめ
順不同です。
全てやれというわけではなく、現行の速度を見てできそうなことやる感じ。

他にありましたら教えて頂きたいです

0.PHPのバージョン

7↑使う

1.BladeのMinify

BladeがコンパイルされHTML(手続き型のPHPだけど)になったものを圧縮する
自作のディレクティブがあるとうまく動かなかった

https://xzxzyzyz.com/2018/02/larave-html-minify/

2.Laravel MixでCSS JSの圧縮

Laravel Mix使ってるなら行う

npm run prod

3.OPCache有効か

OPcache はコンパイル済みのバイトコードを共有メモリに保存し、PHP がリクエストのたびにスクリプトを読み込み、パースする手間を省くことでパフォーマンスを向上させます。

php -v
or
phpinfo()でページで確認

無効だったら有効化させる

4.View Cache

bladeから普通のphpにコンパイルされるがそれが初回アクセス時なので、先にやっておく

php artisan view:cache

5.Configキャッシュ

設定値等々を事前にキャッシュしておく

php artisan config:cache

6.オートローダー最適化

プロダクションへデプロイする場合、Composerのクラスオートローダマップを最適し、Composerが素早く指定されたクラスのファイルを確実に見つけ、ロードできるようにします。

composer install --optimize-autoloader --no-dev

7.ルートキャッシュ

リクエスト毎にルーティング確認しに行き、Controllerを精査するのでキャッシュしておく
Controllerを使わず、クロージャなどで処理してると使えないのでinvokeのコントローラーでも作って処理させる
view返すだけならRoute::viewを使用する

php artisan route:cache

8.SetCacheHeadersミドルウェアの使用

あんまり情報がないミドルウェア
レスポンスをキャッシュできる
ApacheとかいじらなくていいのでGetメソッドでキャッシュして問題ないものにつけておくとよい

100秒キャッシュ

web.php
Route::get('example', 'ExampleController@index')->middleware('cache.headers:public;max_age=100');

https://github.com/spatie/laravel-responsecache

このようなパッケージもあるみたい

9.未使用middlewareの削除

app/Http/Kernel.phpの中から不要なのを消す

参考→https://qiita.com/kurikazu/items/0c57f050f5dfef02b23e

10.未使用Facadeの削除

config/app.phpaliases 配列から消していく

11.クエリの結果キャッシュできないか

クエリの結果キャッシュできないか
cacheドライバーはfile以外apcu、redis、memcached
fileでも使わないよりは良い

HogeController
$minutes = 1;//1分
return Cache::remember('key', $minutes, function(){
    return User::all();
});

12.未使用CSS削除

MixならPurgeCSSで使っていないCSS削除する

13.Eloquentを使わない

DBファサードでやっていく

ex.

EagerLoadingしていないか


ブログ始めました

https://c-blog.collapse-natsu.com/

ntm718
Laravelやってます。色々書きます!
https://blog.collapse-natsu.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away