メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • XHProfの導入

XHProfの導入

drupal
drupal
performance optimaization

前提条件

  • 開発ツールDevelがインストールされている

XHprofのインストール

  • OSに合わせ、PECLからXHprofライブラリをダウンロードし、ライブラリファイル(コンパイル、php_xhprof.so)をPHPのextディレクトリに入れる。
    • xhprof_html: プロファイルをHTMLフォーマットで表示するための起動ファイル
    • xhprof_lib: プロファイルを表示するためのライブラリ
    • 上記2フォルダを別のディレクトリに入れて、DrupalのDevelで設定する
  • php.iniにXHprofへ拡張の設定、プロファイル出力フォルダを指定する
    extension = "/virtual/drills/public_html/php_extension/xhprof.so"
    xhprof.output_dir = "/virtual/drills/public_html/pecl/xhprof/xhprof_output"
  • phpinfo()メソッドでXHProfがインストールされたことを確認する

DrupalでのXHProf関連設定

  • Develの設定画面(Home » Administration » Configuration » Development » Devel settings)で
    • xhprof_libとxhprof_htmlの所在を指定する
    • XHProfのプロファイル確認パスの設定

XHProfの使用

  • 任意のページをアクセスしてページの左の下に「XHProf output」リンクが表示されます
  • 「XHProf output」リンクをクリックするとそのページのプロファイルが表示されます
  • プロファイルの表示項目の読み方
    • FunctionName :  コールされた関数名
    • Calls               :  コールされた回数
    • Calls%             : 全体のコール回数に対する割合
    • Incl. Wall Time : その関数全体の処理時間
    • IWall%              : 全体の実行時間に対する割合
    • Excl. Wall Time : その関数から呼ばれた関数の実行時間を除外した、関数の純粋な処理時間
    • Excl. Wall TimeをCallsで割ると1回あたりの処理時間になる
    • EWall%              : Incl WallTimeに対する割合
  • 上記プロファイルのデータはphp.iniで指定されたフォルダ(xhprof.output_dir)にあります

Graphvizのインストール

  • 上記プロファイルの表示画面にある「View Full Callgraph」リンクをクリックするとエラーが表示される
    failed to execute cmd: " dot -Tpng". stderr: `sh: dot: command not found '
  • グラフを表示するためにコマンドラインで"dot"の実行環境が必要です。
  • ”dot”はどんなものでしょうか、実はここで「Graphviz」(グラフを表示するツール)が必要となります。
  • 「Graphviz」の本家でOSに合わせライブラリをダウンロードしてサーバーにインストールします。
    • ”dot”コマンドのディレクトのパスを通すか以下のように指定する
    • 設定した「xhprof_lib」ディレクトリの下に:"utils/callgraph_utils"ファイルの110行あたりのコードを以下のように指定(例:Windowsの環境)
        $cmd = " C:\develop\dev_source\php\xhprof\xhprof_bin\bin\dot -T".$type;
        $process = proc_open($cmd, $descriptorspec, $pipes, "C:\develop\dev_source\php\xhprof\xhprof_tmp",  array() );
  • 再度「View Full Callgraph」リンクをクリックして、以下のようなグラフが作成されます
ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)