色々あったので備忘録的にまとめ
順不同です。
全てやれというわけではなく、現行の速度を見てできそうなことやる感じ。
他にありましたら教えて頂きたいです
#0.PHPのバージョン
7↑使う
#1.BladeのMinify
BladeがコンパイルされHTML(手続き型のPHPだけど)になったものを圧縮する
自作のディレクティブがあるとうまく動かなかった
#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秒キャッシュ
Route::get('example', 'ExampleController@index')->middleware('cache.headers:public;max_age=100');
このようなパッケージもあるみたい
#9.未使用middlewareの削除
app/Http/Kernel.php
の中から不要なのを消す
参考→https://qiita.com/kurikazu/items/0c57f050f5dfef02b23e
#10.未使用Facadeの削除
config/app.php
の aliases
配列から消していく
#11.クエリの結果キャッシュできないか
クエリの結果キャッシュできないか
cacheドライバーはfile以外apcu、redis、memcached
fileでも使わないよりは良い
$minutes = 1;//1分
return Cache::remember('key', $minutes, function(){
return User::all();
});
#12.未使用CSS削除
MixならPurgeCSSで使っていないCSS削除する
#13.Eloquentを使わない
DBファサードでやっていく
#ex.
EagerLoadingしていないか
ブログ始めました