#パフォーマンスお疲れ様です。ギークフィードエンジニアのサミーラです。私は一年ぐらい前からLaravelフレームワークでWEBシステム開発をしています。通話録音システムの制御および表示WebシステムモバイルゲームのバックエンドシステムWEB電話帳システムIP-PBXのWEBプロビジョニングシステム。まとめIntroduction今回はLaravelシステムのパフォーマンス向上について話したいと思います。どのエンドユーザーでもレスポンスのために長く待たなければならないときにシステムを嫌います。それで、システムのパフォーマンスは大事な役割をします。laravelは管理的な機能が多いフレームワークであるため、laravelシステムのパフォーマンス向上はそれほど難しくはありません。Laravelシステムのパフォーマンスを向上するための3つの方法について説明します。これらはlaravelの基本的な知識で行うことができます。SpeedパッケージCacheの設定Cachingとは、前処理されたデータまたはデータストアからのデータを保存することです。これにより、そのデータに対する今後のリクエストをより迅速に処理できます。Laravelのパフォーマンス向上に関する、cacheの点2つについて説明します。cacheはLaravelのconfigをロードするのを高速化するために、cacheファイルを作る機能です。Laravelのconfigディレクトリに下に複数のconfigファイルがあります。cacheを使って、全てのconfigファイルを1つのconfigファイルにまとめることができます。以下のartisanコマンドでconfigの詳細が表示されます。-h上のconfig:cacheコマンドに関するファイルは「Illuminate/Foundation/Console/ConfigCacheCommand」です。必要であれば、そのファイルの「handle」メソッドを見ればコマンドの動きがわかります。コマンドの動きがわかる必要がありませけど、以下のコマンドで全てのconfigを含めている「/bootstrap/cache/config.php」を作れます。Laravelはそのファイルを使って、configをロードするので、パフォーマンス向上になります。config:cacheここで覚えておく必要があるのは、設定ファイル(.config)でしかenv()メソッドを使用できなくなるということです。他のところ(Controllerなど)でconfigの値を使うなら、config()メソッドを使うようにする必要があります。原因として、もしconfig:cacheコマンドが実行したら、env()メソッドが.envファイルを読むことができなくからです。CacheLaravelnのRoutingは遅いプロセスです。laravelルーティングには、登録ルート、マッピングコントローラークラス、アクション、ミドルウェア、APIまたはWebへのルートの一致が含まれます。cacheはLaravelのrouteを処理するのを高速化するために、cacheファイルを作る機能です。それで、リクエストごとにいろいろな処理をする必要がなくなります。以下のartisanコマンドでconfigの詳細が表示されます。-h上のroute:cacheコマンドに関するファイルは「Illuminate/Foundation/Console/RouteCacheCommand」です。必要であれば、そのファイルの「handle」メソッドを見ればコマンドの動きがわかります。以下のコマンドで全てのrouteを含めている「/bootstrap/cache/routes.php」を作ります。Laravelはそのファイルを使って、routesをロードするので、パフォーマンス向上になります。cachingには制限があります。cachingを使用する場合、routeにclosureを含めることはできない」ということです。例:laravelのrouteは「routes/api.php」と「routes/web.php」に入っています。そのファイルに以下のようなroutesが入れることができません。$request->user();});全てのroutesは以下の形にする必要があります。'SomeController@method');データベースチャンキングシステム開発するときにデータベースから大量のデータをロードし、それらのデータに対して何らかの操作をする必要があります。いう状況でサーバーのPHPのメモリ足りなくなるし、システムが遅くなる可能性があります。データベースチャンキングは、このような状況で使用できる優れたオプションです。30万数のレコードのデータセットを持つデータベーステーブルcommentsがあると考えてください。limitのエラーが発生、もしくはシステム遅くなる可能性があります。limitのエラー、もしくはシステム遅くなる可能性がなくなります。$cmnt){//コメントでレポート生成}});});上のソースコードによると、DBは30回アクセスされ、一度に10000レコードを取得します。それで、システムのパフォーマンス向上にすることができます。SpeedはLaravelのhtmlファイルを最適化するパッケージです。それは「余分な新しい行、空行、コメント、htmlタグのいらないattributes」を削除してから、ウェブページを表示します。Speedパッケージのホームページに行くとインストールする方法は書いてありますので、簡単にインストールできます。ここで知っておくべきことの1つは、パッケージのミドルウェア設定についてです。$middleware」配列の内に入れると、すべてのroutes(webとapi)がページのサイズを小さくします。apiのroutesの場合はページのサイズを小さくする必要はありません。」のweb配列の中に入れたほうがいいと思います。そこに入れるとwebのroutesの場合しかページのサイズを小さくしません。あと、ページの縮小操作は特定のroutesの場合のみ使うんだったら、以下の方法を使えます。$middlewareGroups」配列の中に以下の配列を入れる。[\RenatoMarinho\LaravelPageSpeed\Middleware\InlineCss::class,\RenatoMarinho\LaravelPageSpeed\Middleware\ElideAttributes::class,\RenatoMarinho\LaravelPageSpeed\Middleware\InsertDNSPrefetch::class,\RenatoMarinho\LaravelPageSpeed\Middleware\RemoveComments::class,\RenatoMarinho\LaravelPageSpeed\Middleware\TrimUrls::class,\RenatoMarinho\LaravelPageSpeed\Middleware\RemoveQuotes::class,\RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class,]その後、新しく作ったミドルウェアを必要なrouteで使えます。'SomeController@method')->middleware('pagespeed');上のソースコードだと「/welcome」というrouteのみ、ページの縮小になります。まとめシステムのパフォーマンスは重要なポイントです。laravelシステムのパフォーマンス向上させる方法はたくさんあります。ここでは、3つのポイントについて説明しました。システム開発後、configとrouteをcachingして、パフォーマンス向上させる方法。大量のデータがある場合、データベースから部分的にデータを取得する方法。ページの縮小操作をして、htmlページの表示のパフォーマンス向上させる方法。reserved.ページトップへ。