web-dev-qa-db-ja.com

xdebugプロファイラーで手動で特定の場所でプロファイリングを開始するように言うことはできますか?

XAMPPインストールでxDebugプロファイリングをすでに有効にしており、正常に動作します。

ここで、xDebugでプロファイリングを開始するタイミングをソースコード内から言う方法があるかどうかを尋ねます。

具体的には、WordPressプラグインを作成します。つまり、プラグインの開始点からプロファイリングを開始し、プラグインの終了点でプロファイリングを停止します。

それは可能ですか?

注:上記は一例です。 CakePHPプラグインまたは新しいPHP私がプロファイリングする必要があるクラス

36
Merianos Nikos

編集:Per 実行時にXdebugプロファイリングをオン/オフにする方法? 実際に実行時に(たとえば、関数呼び出しごとに)有効/無効にすることはできません。

リクエストごとにプロファイラーを選択的に有効にすることができます。この動作を実現するには、次の設定を行います。

xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0

プロファイラーを無効にし、トリガーのみを有効にすることに注意してください。ブラウザからXDEBUG_PROFILE = 1を渡します

http://example.com/file.php?XDEBUG_PROFILE=1

このパラメーターをPOSTまたはCOOKIEで渡すこともできます。詳細については、

  1. http://xdebug.org/docs/profiler#starting
  2. http://xdebug.org/docs/all_settings#profiler_enable_trigger
59
Laith Shadeed

Laithが述べたように、xDebugでプロファイリングを開始するタイミングと停止するタイミングを選択することはできません。しかし、別のxDebug機能は、この種の柔軟性を提供します。トレースです。

プロファイリングとトレースはまったく同じものではありませんが、ここで終了すると、トレースがニーズに合う可能性があります。

トレースを開始するには、次の関数を使用する必要があります:xdebug_start_trace()

トレースを停止するには、次の関数を使用する必要があります:xdebug_stop_trace()

トレースの動作を変更するために使用できる設定はたくさんあります。

http://xdebug.org/docs/execution_trace

8