APDとは? わかりやすく解説

エー‐ピー‐ディー【APD】

読み方:えーぴーでぃー

avalanche photodiode》⇒アバランシフォトダイオード


APD(Avalanche Photodiode)

→アバランシェホトダイオード

アバランシェフォトダイオード(Avalanche Photodiode, APD)


Advanced PHP Debugger (APD)

導入

APD は進化した PHP デバッガです。PHP コードのプロファイリングや デバッグの機能を提供すること、また完全なスタックトレースを出力する 機能を提供することを目的として作成されています。APD は対話形式の デバッグもサポートしていますが、デフォルトではデータをトレース ファイルに書き出すようになっています。また、さまざまなレベルの 情報(関数のコール・渡された引数・時間などを含む)をイベント発生時に 記録することができ、それを個々のスクリプト単位で有効にしたり無効に したりできます。
注意
APD は Zend 拡張モジュールで、PHP 内部関数のコール方法に手を加えます。 そのため、他の Zend 拡張モジュール(たとえば Zend Optimizer など)との 相性に注意が必要です。


インストール手順

現在 APD は PECL 拡張モジュールとして公開されており、 » http://pecl.php.net/package/apd で入手可能です。CGI 版の PHP がインストールされており、パスの通った場所に phpize スクリプトがあることを確かめてください。
APD の最新安定バージョンをダウンロード・ビルド・インストールするには 以下のコマンドを実行します。

pear install apd

  

これは、APD Zend モジュールを自動的に PHP の extension ディレクトリに インストールします。必ずこの場所でなければならないわけではありません。 zend_extension パラメータを適切に設定すれば、PHP が 読み込めるディレクトリならどこにでもインストール可能です。
Windows ユーザは » http://snaps.php.net/win32/PECL_STABLE/ から php_apd.dll をダウンロードできます。
INI ファイルに以下の行を追加します。

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

  

PHP のビルド状況によって、zend_extension ディレクティブは 以下のうちのいずれかひとつとなります。

zend_extension              (非 ZTS, 非 debug ビルド)
zend_extension_ts           (   ZTS, 非 debug ビルド)
zend_extension_debug        (非 ZTS,    debug ビルド)
zend_extension_debug_ts     (   ZTS,    debug ビルド)

  

Win32 でのビルド

Windows で APD をビルドするには、http://php.net/ で述べられているような PHP コンパイル環境が必要です。 -- 基本的には、Microsoft Visual C++・ win32build.zip・bison/flex・そしてそれらをうまく動かすためのちょっとした コツが必要になります。また adp.dsp の改行コードは必ず DOS 形式に してください。Unix 形式の改行コードだと、Microsoft Visual C++ に文句を言われます。

実行時設定

php.ini の設定により動作が変化します。
表 19. APD の設定オプション
名前デフォルト変更の可否変更履歴
apd.dumpdirNULLPHP_INI_ALL 
apd.statement_tracing"0"PHP_INI_ALL 

PHP_INI_* 定数の詳細および定義については 付録 G. php.ini ディレクティブ を参照してください。
以下に設定ディレクティブに関する 簡単な説明を示します。
apd.dumpdir string
APD がプロファイルのダンプファイルを書き出すディレクトリを設定します。 絶対パス・相対パスのどちらも指定可能です。
apd_set_pprof_trace() へ引数を渡すことで、 指定した以外の場所に書き出すことも可能です。
apd.statement_tracing boolean
行単位のトレースをするかしないかを設定します。これを on (1) にすると、アプリケーションのパフォーマンスに衝撃的な影響を与えます。

リソース型

リソース型は定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
表 20. APD の定数
定数説明
FUNCTION_TRACE (integer) 1 
ARGS_TRACE (integer) 2 
ASSIGNMENT_TRACE (integer) 4 
STATEMENT_TRACE (integer) 8 
MEMORY_TRACE (integer) 16 
TIMING_TRACE (integer) 32 
SUMMARY_TRACE (integer) 64 
ERROR_TRACE (integer) 128 
PROF_TRACE (integer) 256 
APD_VERSION (string) 例: 1.0.2-dev 

スクリプト中で PHP-APD を使用する方法

  1. トレースを開始するには、PHP スクリプトの最初の行で apd_set_pprof_trace() 関数をコールします。
    apd_set_pprof_trace();
    この行はスクリプト内のどの場所にでも挿入可能ですが、もしスクリプトの 最初からトレースを始めなければ、あなたをパフォーマンスのボトルネックに 導いてくれるかもしれないデータを捨てることになってしまいます。
  2. さあ、スクリプトを実行しましょう。ダンプ結果は apd.dumpdir/pprof_pid.ext に出力されます。

    ティップ

    CGI 版の PHP を使用している場合は、apd が正しく動作するように '-e' フラグつきで実行し、拡張情報を有効にしてください。たとえば php -e -f script.php のように実行します。

  3. プロファイルデータを整形して表示するには、お好みの並べ替えオプション・ 表示オプションを指定して pprofp コマンドを実行 してください。整形された出力は以下のようになります。
    
    bash-2.05b$ pprofp -R /tmp/pprof.22141.0
    
    Trace for /home/dan/testapd.php
    Total Elapsed Time = 0.00
    Total System Time  = 0.00
    Total User Time    = 0.00
    
    
    Real         User        System             secs/    cumm
    %Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
    --------------------------------------------------------------------------------------
    100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
    56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
    28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
    14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace
    
          

    この例で使われている -R オプションは、その関数を実行するのにかかった時間の 順でプロファイルテーブルを並べ替えます。"cumm call" 列には個々の関数が 何回コールされたか、そして "s/call" 列には 1 回のコールあたりの 平均所要時間が表示されます。
  4. KCacheGrind にインポートできる形式のファイルを作成するには、 pprof2calltree コマンドを実行してください。

連絡先の情報

コメント・バグフィックス・機能拡張・あるいは開発を手伝いたいなどの場合は、 メールを » apd@mail.communityconnect.com に送ってください。大歓迎します。

目次

apd_breakpoint — インタプリタの処理を停止し、ソケットからの CR を待つ
apd_callstack — 現在のコールスタックを配列で返す
apd_clunk — 警告とコールスタックをスローする
apd_continue — インタプリタを再開する
apd_croak — エラーとコールスタックをスローし、終了する
apd_dump_function_table — 現在の関数テーブルを出力する
apd_dump_persistent_resources — すべての持続的なリソースを配列で返す
apd_dump_regular_resources — 現在のすべての一般リソースを配列で返す
apd_echo — デバッグ用ソケットに表示する
apd_get_active_symbols — ローカルスコープ内の現在の変数名を配列で取得する
apd_set_pprof_trace — セッションのデバッグを開始する
apd_set_session_trace — セッションのデバッグを開始する
apd_set_session — 現在のデバッグレベルを変更あるいは設定する
apd_set_socket_session_trace — リモートセッションのデバッグを開始する
override_function — 組み込みの関数を上書きする
rename_function — グローバルの関数テーブルで関数名を変更する

APD

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/09/18 03:47 UTC 版)

ナビゲーションに移動 検索に移動

APD

医療



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「APD」の関連用語

APDのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



APDのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
実用日本語表現辞典実用日本語表現辞典
Copyright © 2024実用日本語表現辞典 All Rights Reserved.
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
住友電工デバイス・イノベーション株式会社住友電工デバイス・イノベーション株式会社
(C) 2024 Sumitomo Electric Industries, Ltd.
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのAPD (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS