目次
Xdebug ドキュメント (6) PHP スクリプトの分析、
分析出力
関連機能
ホームページ php教程 php手册 Xdebug ドキュメント (6) PHP スクリプトの分析、

Xdebug ドキュメント (6) PHP スクリプトの分析、

Jul 06, 2016 pm 02:25 PM
php xdebug 内蔵 分析する アナライザ 現れる 書類 できる 脚本

Xdebug ドキュメント (6) PHP スクリプトの分析、

PHP スクリプトの分析 Xdebug の組み込みアナライザーを使用すると、スクリプト内のボトルネックを見つけ、KcacheGrind ツールや WinCacheGrind ツールなどの追加ツールを使用して視覚化できます。

はじめに

Xdebug アナライザーは、PHP コードを分析してボトルネックを特定したり、コードの実行が遅すぎてアクセラレータの使用が必要な箇所を特定したりする強力なアナライザーです。 Xdebug2 のアナライザー出力情報は、cachegrind 互換ファイルで表現されます。これにより、優れた KcacheGrind ツール (Linux、KDE) を使用してデータを分析できるようになります。 Linux を使用している場合は、インストール マネージャーでインストールできます。

Windows で使用できるプリコンパイル済みの QcacheGrind バイナリ インストール パッケージもあります (QCacheGrind は、KDE ​​をバンドルしていない KcacheGrind のバージョンです)

Mac システムを使用している場合は、QcacheGrind をインストールする方法について説明します。

Windows ユーザーは WinCacheGrind の使用を選択することもできます。ただし、KcacheGrind とは機能が異なるため、この記事ではソフトウェアの紹介は行いません。 Xdebug2.3 が公開されたとき、WinCacheGrind は現在、cachegrind 圧縮関数とファイルをまだサポートしていませんでした。

KDE を使用しない (または使用したくない) 場合、kcachegrind パッケージには、トレース ファイルを分析して ASCII を出力できる Perl スクリプト「ct_annotate」も含まれています。

分析を開始する

分析を有効にするには、Php.ini の xdebug.profiler_enable を 1 に設定します。このセットアップ コマンド xdebug はプロファイリングを有効にし、xdebug.profiler_output_dir で指定されたディレクトリに書き込みます。生成されるファイル名は通常、「cachegrind.out」で始まり、PHP (または Apache) プロセスの PID (プロセス ID)、または初期デバッグ スクリプトを含むディレクトリの crc32 ハッシュで終わります。 xdebug.profiler_output_dir 設定ディレクトリに、複雑なスクリプト分析によって生成される膨大な分析データを保存するのに十分なスペースがあることを確認してください。たとえば、500MB を超える複雑なアプリケーションである eZ Publish があります。

xdebug.profiler_enable_trigger を 1 に設定して、プロファイラーを手動で有効にすることもできます。 1 に設定すると、XDEBUG_PROFILE という名前の変数を使用して GET/POST または COOKIE 値を利用するようにプロファイラーに指示できます。 FireFox 2 拡張機能を使用すると、デバッガーを有効にすることができ (「HTTP デバッグ セッション」を参照)、この設定を使用することもできます。トリガーが適切に機能するには、xdebug.profiler_enable を 0 に設定する必要があります。

分析出力

分析結果が生成されたら、KCacheGrind を使用して開くことができます:

ファイルを開くと、KCacheGrind にさまざまなパネルが表示され、参照に十分な情報が提供されます。左側には、サブ関数の時間を含む、すべてのスクリプト関数が費やされた時間順にリストされる「フラット プロファイル」パネルが表示されます。 2 番目の列「Self」は関数 (サブ関数を除く) によって費やされた時間を示し、3 番目の列「Called」は呼び出される頻度を示し、最後の列「functions」は関数名を示します。 Xdebug は PHP の内部関数名を変更し、関数名にプレフィックス「php::」を追加します。また、参照されたファイルも指定された方法で処理されます。 include コマンドの呼び出しの後には、「::」と参照されるファイル名が続きます。左側のスクリーンショットでは、「include::/home/httpd/ez_34/v...」とメモリ関数の例「php」が表示されます。 ::mysql_query」。最初の 2 つの列の数値は、合計実行時間をパーセンテージ (例を参照) または絶対時間 (1 単位は 1/1,000,000 秒を表します) として表すことができます。右側のボタンを使用して、これら 2 つのモードを切り替えることができます。

右側のパネルには上部パネルと下部パネルが含まれています。上のパネルには、現在選択されている関数を呼び出す関数が表示されます (スクリーンショットでは「eztemplatedesignresource->executecompiledtemplate」)。下のパネルには、選択した関数によって呼び出される関数のリストが表示されます。

上部パネルのコスト列には、現在選択されている関数がリストで呼び出されるときに費やされた時間が表示されます。 [コスト] 列の数値は通常 100% です。下部パネルのコスト列には、リスト内の関数の呼び出しに費やされた時間が表示されます。この列の数値の中には、実行時間が 100% に達する関数はありません。

「すべての呼び出し元」と「すべての呼び出し」は、それぞれの関数によって実行された直接の呼び出しだけでなく、関数のより上位と下位の関係も表示します。スクリーンショットの上部パネルには、現在選択されている関数によって呼び出されるすべての関数の列が表示されており、スタックの中央には直接的および間接的に関連する他の関数も含まれています。 (翻訳能力には制限があります...元の文は次のとおりです。左側のスクリーンショットの上部ペインには、現在選択されている関数を直接および間接的に呼び出しているすべての関数が、スタック上のそれらの間にある他の関数とともに表示されます。) 「距離」列はリスト内の関数呼び出しの数を表し、現在の選択は (-1) です。 2 つの関数間の距離が異なる場合は、値の範囲も表示されます (例:「5-24」)。括弧内の数字は平均値を表します。下のパネルも同様に表示されますが、現在選択されている関数によって直接的または間接的に呼び出されるすべての関数情報が表示される点が異なります。

関連設定

xdebug.profiler_append

タイプ:

整数、デフォルト値: 0

1 に設定すると、分析ファイルが新しいリクエストで同じファイルにマップされるとき (xdebug.profiler_output_name に応じて)、分析結果は上書きされませんが、分析情報は末尾に追加されて新しいリクエストが作成されます。分析ファイル。

xdebug.profiler_enable

タイプ: 整数、デフォルト値: 0

Xdebug のアナライザーを開くと、プロファイル出力ディレクトリに分析ファイルを作成できます。これらのファイルを KcacheGrind で読み取って、データを視覚的に分析できます。この設定は、ini_set() を使用してスクリプトで設定することはできません。プロファイラを選択的に有効にする場合は、代わりに xdebug.profiler_enable_trigger 設定を 1 に設定します。

xdebug.profiler_enable_trigger

タイプ: 整数、デフォルト値: 0

1 に設定すると、XDEBUG_PROFILE の GET/POST パラメーターを使用するか、XDEBUG_RPOFILE の Cookie 値を設定して、分析ファイルの生成をトリガーできます。これらは、事前定義されたディレクトリにプロファイルを書き込みます。リクエストごとにプロファイル ファイルが生成されないようにするには、xdebug.profiler_enable の値を 0 に設定する必要があります。アクセス トリガーは、xdebug.profiler_enable_trigger_value を介して構成できます。

xdebug.profiler_enable_trigger_value

タイプ: string、デフォルト値: ""Xdebug > 2.3

以降

xdebug.profiler_enable_trigger で説明されているように、この設定は XDEBUG_PROFILE 機能を利用できるユーザーを制限するために使用されます。元の空の文字列のデフォルト値から変更する場合、Cookie、GET、または POST パラメーターの値が共有秘密セットと一致し、構成とともにアナライザーを有効にする必要があります。

xdebug.profiler_output_dir

タイプ: string、デフォルト値: /tmp

このディレクトリは分析ファイルが出力される場所です。PHP を実行しているアカウントにこのディレクトリへの書き込み権限があることを確認してください。この設定は、ini_set() を使用してスクリプトで設定することはできません。

xdebug.profiler_output_name

タイプ: string、デフォルト値: cachegrind.out.%p

この設定は分析ファイルの名前を決定します。分析ファイルの名前は、sprintf() や strftime() と同様に形式識別子を使用して指定できます。ファイル名をフォーマットする識別子がいくつかあります。詳細については、xdebug.trace_output_name の説明を参照してください。

関連機能

文字列 xdebug_get_profiler_filename()

現在保存されている解析情報のファイル名を返します。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles