Laravel8でパフォーマンスを最適化するにはどうすればよいですか?最適化のヒントの共有
このガイドでは、簡単な最適化から詳細なチューニングまで、高パフォーマンスの Laravel アプリケーションの構築に役立つさまざまなパフォーマンス最適化のヒントをリストします。
Enlightn には、このガイドの作成に協力してくれた多くの学生がいます。 Laravel の自動化パフォーマンスやセキュリティ ツールをお探しの場合は、この Web サイトにアクセスしてください。
なぜパフォーマンスが向上するのですか?
ユーザーが遅いアプリよりも速いアプリを好むのは間違いありません。 Google の調査によると、Web サイトの読み込みに 3 秒以上かかると、モバイル端末のユーザーの 53% が離脱する (離脱を選択する) ことになります。また、モバイル Web サイトの平均読み込み時間は約 15 秒です。だからこそパフォーマンスが重要なのです! アプリの読み込みにかかる時間が 1 秒増えるごとに、顧客のコンバージョン率は低下します。幸いなことに、Laravel アプリケーションの場合、これは解決するのが難しい問題ではありません。1. 組み込みのパフォーマンス機能を使用してすぐに勝つ
Laravel には、組み込みのパフォーマンス向上機能がいくつかあり、シンプルな構成。 最も重要なパフォーマンスの向上は、アーティザン コマンドroute:cache を使用して、必要なすべてのルーティング情報をキャッシュし、ルート処理をスキップできます。
php artisan route:cache
- 設定キャッシュ .env
と
config# をスキップします。 ## ファイルの解析。 ビュー キャッシュ - Blade テンプレート ビューをプリコンパイルします。 イベント キャッシュ
- アプリケーション内のすべてのイベントとリスナーのリストをキャッシュします。 ヒント: デプロイするたびに再キャッシュされるように、デプロイメント スクリプトに上記のキャッシュ コマンドを必ず追加する必要があります。そうしないと、ルーティング ファイルまたは構成ファイルへの変更がアプリに反映されません。
2. Composer の最適化Laravel 開発者がよく犯す間違いは、すべての依存関係を運用モードでインストールすることです。 Ignition などの一部の開発パッケージは、メモリ内にクエリ、ログ、ダンプを記録し、コンテキストを含む分かりやすいエラー メッセージを提供し、デバッグを簡素化します。これは開発では便利ですが、運用環境ではアプリケーションの速度が低下する可能性があります。
展開スクリプトで、Composer を使用して拡張パッケージをインストールする場合は、必ず
-no-dev オプションを使用してください: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">composer install --prefer-dist --no-dev -o</pre><div class="contentsignin">ログイン後にコピー</div></div>
さらに、次のことを確認してください。実稼働環境では、前述のように、
オプションを使用します。これにより、Composer は「クラスマップ」を生成してオートローダーを最適化できるようになります。 アプリケーションが実行時にクラスを生成しない場合は、さらに最適化するために、
オプションの代わりに --classmap-authoritative
オプションを使用することを選択できます。 Autoloader の Composer ドキュメントを必ず確認してください最適化戦略
.
3. 適切なドライバーを選択してください
Choose適切なドライバー キャッシュ、キュー、セッション ドライバーは、アプリケーションのパフォーマンスに大きな影響を与える可能性があります。 実稼働環境でのキャッシュの場合は、Redis、Memcached、DynamoDB などのメモリ キャッシュ ドライバーが推奨されます。単一サーバーのセットアップではローカル ファイル システム キャッシュの使用を検討することもできますが、これはメモリへのキャッシュ オプションよりも遅くなります。 キューの場合は、Redis、SQS、または Beanstalkd ドライバーを使用することをお勧めします。データベース キュー ドライバーは運用環境には適しておらず、デッドロックの問題があることが知られています。 セッションの場合、データベース、Redis、Memcached、または DynamoDB ドライバーが推奨されます。 Cookie ドライバーにはファイル サイズとセキュリティ制限があるため、運用環境には推奨されません。4. 時間のかかるタスクをキュー経由で処理する
典型的な Web リクエスト プロセスでは、キューを必要とする特定のタスクがいくつか存在する場合があります。完了するまでに長い時間がかかります。 Laravel にはファーストクラスのキューシステムがあり、時間のかかるタスクをキューに入れられたタスクに転送できるため、アプリケーションがリクエストに非常に迅速に応答できるようになります。一般に、このようなタスクの一般的な例には、CSV ファイルの解析と保存、サードパーティ API との対話、ユーザーへの通知の送信、長くて時間のかかるデータベース クエリ、検索インデックスの更新などが含まれます。
5. テキスト ファイルの設定 HTTP 圧縮ヘッダー
圧縮ヘッダーは、アプリケーションのパフォーマンスに大きな影響を与える可能性があります。 CSS、JS、XML、JSON などのテキスト形式ファイルの圧縮または CDN を Web サーバーで有効にしてください。
画像形式にはすでに圧縮アルゴリズムが実装されており、ほとんどの場合、画像形式ファイルは圧縮されており、画像はテキスト形式ファイルではありません (XML ドキュメントである SVG 形式を除く)。したがって、画像形式は圧縮する必要がありません。
Web サーバーまたは CDN に gzip または brotli (古いブラウザは brotli をサポートしていない可能性があります) をセットアップして、パフォーマンスを大幅に向上させることができます。
通常、圧縮するとファイル サイズを約 80% 削減できます。
6. 静的リソースに HTTP キャッシュ ヘッダーを設定する
キャッシュにより、特に画像などの静的リソースの場合、アプリケーションのパフォーマンスが向上します。 、CSS および JS ファイル。該当する場合は、Web サーバーまたは CDN レベルでキャッシュ制御ヘッダーを有効にすることをお勧めします。これらのコントロールヘッダーを Web サーバーではなく Larvel アプリケーションに設定したい場合は、Larvel の キャッシュ コントロール ミドルウェアを使用できます。
Cache ヘッダー フィールドは、Web サイトに複数回アクセスしたときにブラウザが静的リソースを繰り返し要求しないようにします。これにより、次回以降の Web サイトの読み込みが速くなり、ユーザー エクスペリエンスが向上します。
Laravel Mix は、すぐに使用できる キャッシュ クリーニング 機能を提供するため、CSS または JS コードが変更されたときに、ブラウザーが古いキャッシュされたコンテンツを使用し続けることがなくなります。
7. CDN サービスを使用して静的リソースを高速化する
コンテンツ配信ネットワーク (CDN) は、より近いサーバーを使用する地理的に分散されたサーバー グループです。ウェブサイト訪問者に提供されます。これにより、ユーザーは読み込み時間が短縮されます。
CDN には、読み込み速度の高速化と読み込み時間の短縮に加えて、Web サーバーの負荷の軽減、DDOS 保護、静的リソース サービスの分析など、他の利点もあります。
人気のある CDN には、CloudFlare、AWS CloudFront、Azure CDN などがあります。ほとんどの CDN には、一定の無料試用制限があります。静的リソースの読み込みパフォーマンスを向上させるために、CDN の使用を検討してください。
Laravel は、すぐに使える CDN サポートコンポーネント Mix とヘルパー関数 asset をフレームワークに提供します。
8. JS および CSS コードを最小限に抑える
スクリプトを最小限に抑えると、アプリケーション コード (コード コメント、空白、短縮コードなど) から不要なオーバーヘッドが削除されます。変数名、その他の最適化)。これは、運用環境で JS および CSS ファイルのサイズを削減するための一般的で効果的な方法です。
Laravel Mix は、すぐに使用できる 出力最小化機能を本番スクリプトに提供します
9. キャッシュを賢く使用します
##Laravel にはキャッシュ サポートが組み込まれています。キャッシュは、読み取り負荷の高いワークロードに最適です。これらのワークロードには、多くの場合、時間のかかるデータ取得タスクやデータ処理タスクが含まれます。
キャッシュの一般的なシナリオには次のようなものがあります:- 静的ページのキャッシュ: 静的ページのキャッシュは簡単です。Laravel の公式 Web サイトでは次のものが使用されますPageキャッシュ 各ドキュメント ページをキャッシュします。
- フラグメントまたは部分キャッシュ: ページ全体をキャッシュするよりも、ページのフラグメントをキャッシュした方が便利な場合があります。たとえば、ユーザー名とユーザー アバターを含むページ ヘッダーをキャッシュしたい場合があります。毎回データベースからデータをフェッチしなくても、ページ ヘッダー フラグメントを 1 回キャッシュできます。
- クエリ キャッシュ: クエリ キャッシュは、アプリケーションがめったに変更されない項目についてデータベースに頻繁にクエリを実行する場合に便利です。たとえば、電子商取引 Web サイトを運営している場合、モールを訪問するたびにデータベースからこれらの商品カテゴリを読み取るのではなく、モールのホームページに表示される商品カテゴリをキャッシュしたい場合があります。
ロングテール (めったに要求されない項目) には役に立たないことに注意してください。逆に、(データ更新と比較して) 頻繁なデータ取得の場合は注意して使用する必要があります。
キャッシュされたコンテンツが変更されるたびに、キャッシュが無効化またはフラッシュされることも確認する必要があります。たとえば、プロファイル ヘッダーをキャッシュしている場合は、ユーザーがプロファイル写真を更新した後にキャッシュを更新します。
10. アプリケーションのパフォーマンスのボトルネックを特定する
一部のページの読み込みに時間がかかったり、メモリ使用量が多くなったりする場合は、次のことが必要になる場合があります。パフォーマンスのボトルネックを特定します。 Laravel エコシステムには、Laravel Telescope、Laravel Debugbar、Clockwork など、これを行うのに役立つツールが多数あります。
一般的なパフォーマンスのボトルネックには、次のものがあります。
- N 1 クエリ: コードがレコードごとに 1 つのクエリを実行すると、ネットワークのラウンドトリップが増加します。そしてさらに多くのクエリ。これは、Laravel で データのプリロードを使用して行うことができます。
- 重複リクエスト: 同じリクエストの処理中にコードが同じクエリを複数回実行すると、速度が遅くなる可能性があります。 down アプリケーションの実行速度。通常、複数のサービスまたはクラスが同じデータ セットを必要とする場合、これらの問題は、データの計算または取得を別のクラスに抽出することで解決できます。
- 高いメモリ使用量: アプリケーションのメモリ使用量を削減するには、Lazy collections と Query chunking を使用してメモリ使用量を削減することを検討できます。単一 処理されるデータの量。ファイルを保存するには、自動ストリーミングを使用してメモリ使用量を削減します。
- 遅いクエリ: クエリの実行に時間がかかりすぎる場合は、クエリ キャッシュの使用を検討するか、EXPLAIN ステートメントを使用してクエリ実行プランを最適化する必要があります。
上記のデバッグ ツールを使用してアプリケーションのパフォーマンスのボトルネックを特定できない場合は、XDebug や Blackfire などの分析ツールの使用を検討してください。
オンライン チェックリスト
さらに、参照用の完全なオンライン チェックリストをここに示します41. コースの概要|《LX3 Laravel パフォーマンスの取得》最適化から始めました》。
概要
パフォーマンスの最適化は永遠のテーマですが、Laravel にはミックス、キュー、キャッシュなどの組み込みコンポーネントがいくつかあります。パフォーマンスの最適化が簡単に見えます!アプリケーションのパフォーマンスの向上について新しいことを学んでいただければ幸いです。
元のアドレス: https://laravel-news.com/performance-checklist
翻訳アドレス: https://learnku.com/laravel/t/55702
[関連する推奨事項: laravel ビデオチュートリアル ]
以上がLaravel8でパフォーマンスを最適化するにはどうすればよいですか?最適化のヒントの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。
