ホームページ  >  記事  >  バックエンド開発  >  content が多すぎると PHP のエコー出力が非常に遅くなります_PHP Tutorial

content が多すぎると PHP のエコー出力が非常に遅くなります_PHP Tutorial

WBOY
WBOYオリジナル
2016-07-13 10:31:221170ブラウズ

長年中国医学を実践してきた老医師として、私は今日、フロントエンドのページ表示が遅いという問題を解決する任務を与えられました。質問ページの状況は以下の通りです

apache + php

Smartyテンプレートを使用してコンテンツを出力します

ページの最終出力コンテンツは大きく、80k+

ページの実行時間が500ミリ秒を超えています

魔法の武器 xhprof を使用して問題のあるページを詳細に検査したところ、ページのボトルネックはテンプレート内の echo ステートメント (コンパイル後) であることが判明しました。この echo ステートメントによって出力される文字列は比較的大きいことが判明しました。 、約 50k バイト以上で、ページ全体の実行時間の 80% を占める 400 ミリ秒以上の時間がかかりました。この種のエコー出力は、実際にはサイトのホームページでは非常に一般的であり、データベース操作がなければ、実行時間はそれほど長くはなりません。

そこで、私は検索スキルを精力的に駆使し、最終的に PHP マニュアルのエコー部分でいくつかの手がかりを見つけました。によれば、2003 年の時点で、一部の先輩は、エコーを介してクライアントに大きな文字列を出力すると、サーバーでパフォーマンスの問題が発生すると考えていました。私のテストでは、このシナリオで print を使用すると、実際には同じくらい遅いです。推奨される解決策は、文字列をより小さな文字列に分割して出力することです。出力関数は次のようになります。 リーリー

しかし、上記の処方箋はあまり症状を示すものではなく、echobig 全体の出力時間は依然として約 400 ミリ秒であり、大きな改善はありません。大量のコンテンツをクライアントに出力するのが遅いことを考慮して、Apache の設定を確認したところ、圧縮のために deflate がオンになっていないことが判明したので、有効にしました。 xhprof を使用して再度確認すると、このエコーの出力時間は約 5ms に短縮されます。 400 ミリ秒から 5 ミリ秒では、構成の問題により 80 倍の差が生じ、実際にコストが節約されます。

この話は、圧縮出力をオンにすることが非常に重要であることを示しています。

興味がありそうな記事

    PHP関数memory_get_usageを使用して、現在のPHPメモリ消費量を取得し、プログラムのパフォーマンスを最適化します
  • phpメソッドを使用して、コンテンツ内のすべての画像のリストを取得し、出力します
  • php で特定の期間を取得する 各月のメソッド、これらの月で構成される配列を返します
  • php 文字列内の複数の連続するスペースを 1 つのスペースに変換します
  • zlib を使用して出力コンテンツを圧縮し、Web ページを開く速度を向上させる方法
  • テキストエリア textarea ボックスは入力コンテンツの適応高さに基づいています
  • PHP プログラマーが知っておくべき 40 の PHP コード最適化項目
  • 主要なソーシャル プラットフォーム Web サイトにコンテンツを共有するための Javascript コードの概要

http://www.bkjia.com/PHPjc/764090.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/764090.html技術記事長年中国医学を実践してきた老医師として、私は今日、フロントエンドのページ表示が遅いという問題を解決する任務を与えられました。問題のページの状況は以下の通りです: apache + php は、smarty テンプレートを使用してコンテンツ ページを出力します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。