ホームページ >バックエンド開発 >PHPチュートリアル >PHP はパフォーマンスの最適化を実現します
問題の背景
ページを開発した後、そのページをどのようにより速く、より良く実行できるかが、プログラマーの技術レベルと重要な問題を区別します。視野の指標。したがって、面接中、面接官は必ず「パフォーマンスを最適化するにはどうすればよいですか?」と質問します。
パフォーマンスの最適化とは何ですか?
フロントエンドの観点から見ると、パフォーマンスの最適化は 2 つの方向に分類できます。ユーザーの観点から見ると、1 つはページの読み込みが速いこと、もう 1 つはページの使いやすさです。したがって、パフォーマンスの最適化の検討は、ページの読み込み時間とページの実行効率の 2 つの方向に分けることができます。
(無料の学習ビデオ チュートリアルの共有: php ビデオ チュートリアル)
ブラウザを開いてページのレンダリングが完了するまでにどのくらいの時間がかかりますか
ブラウザの解析 -> クエリ キャッシュ -> DNS クエリ -> リンクの確立 -> サーバーがリクエストを処理 -> サーバーが応答を送信 -> クライアントがページを受信 -> ;HTML の解析 -> レンダリング ツリーの構築 -> コンテンツの表示開始 (白い画面時間) -> 最初の画面コンテンツがロードされる (最初の画面時間) -> ユーザー インタラクティブ (DOMContentLoaded) -> 読み込み完了 (ロード)時間を最適化するには、ここですべてのステップを考えて要約する必要があり、あちこちで少しずつつなぎ合わせないようにする必要があります。
ページ読み込み時間の監視
これらのリンクを最適化する前に、これらのリンクの監視にどれくらいの時間がかかっているかを知る必要があります。
ページの読み込みに関連する多くのデータを取得できます。より一般的に使用されるのは、
DNS 解決時間: domainLookupEnd -domainLookupStart
TCP 接続確立時間: connectEnd - connectStart
responseStart - NavigationStartdom
domContentLoadedEventEnd - NavigationStart
loadEventEnd - NavigationStart
サーバー部分の最適化のキーポイント
バックエンド部分は、キャッシュ、DNS クエリ時間、リンク時間、リクエスト処理時間、応答時間などを最適化できます。 DNS クエリ時間は、httpdns または DNS のプリロード、ドメイン名コンバージェンスなどの手段を使用して最適化できます。 接続の確立の焦点は、長い接続とリンクの再利用、キープアライブ、ロングポーリング、http ストリーミング、WebSocket、または自分で作成したその他のプロトコルです。http2 を直接使用することをお勧めします。リンク プロセスを最適化するために、フロントエンドは CDN、スプライト イメージ、コード マージなどのリソースのメソッドを使用する必要もあります。 サーバーのリクエスト処理には最適化できる点がたくさんありますが、モバイル端末がPCページにアクセスしてモバイルページにジャンプする必要がある場合、サーバー側で302ジャンプを使用して、フロントエンドでは行わず、ジャンプしてください。 hsts を有効にするオプションもあります。これにより、以降のアクセスではブラウザが https を使用する必要があり、https への不要な http ジャンプが削減されます。また、SSL ストリッピング攻撃を防止し、セキュリティを向上させることもできます。 サーバーが応答を送信するとき、Transfer-Encoding=chunked を使用して応答を複数回返すことができます。特定の操作については、bigpipe を確認してください。 Cookie などのサイズを小さくする方法もあります。 おすすめの関連記事とチュートリアル:以上がPHP はパフォーマンスの最適化を実現しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。