programingここ1ヶ月ほどオープンソースCMSのDrupalをあれこれ触っているのですが、まぁびっくりするぐらい日本語の情報が無い!!ので、自分がやってきた足跡を少しでも残しておこうかと書いてみます。今回はDrupalが入っているサーバにXHProfを導入して、処理結果のプロファイルをDrupalの画面から参照するところまでです。処理結果の確認方法やパフォーマンス・チューニングについては、別途書いてみたいですね。なんで、DrupalでXHProf?パフォーマンスを追求しないとイカンのです。現在、絶賛Drupalで自社サービスの開発中なのですが、本番相当のテストデータを入れてみると、とんでもなく遅い処理が散見される現状。手作業であれこれ見ててもいいんだけれど、なんか効率的にできないかといろいろ探した結果、グラフが素敵そうなXHProfを導入してみることに。このグラフィカルな感じだけでもいれてもええんやないやろか。いう妙な期待感が沸き立ちますね。XHProfは、facebook作成のPHPプロファイリングツール。似たようなツールにxdebugのprofilerもあるけれど、XHProfは開発元がfacebookらしく、取得できるプロファイルやグラフィカルな処理の描画などがウリとのこと。直接の動機は面白そうだからちょっといれてみたっという軽いノリです。以下コマンドの実施環境はAmazonLinux前提で。failed最新版はベータ版だと怒られました。xhprof-betaすんなり入ればOKgraphvizのインストールこれがないと、XHProf最大のウリのグラフが表示されないので、入れておきます。/tmp/xhprofこれで、XHProfの設定自体は終了でございます。自分の環境のDrupalのバージョンは7.21です。XHProfで実際にプロファイルを取得するには、計測対象のコードにプロファイル取得開始と終了のスクリプトを埋め込む必要がある。それ用のモジュールも用意されているので使います。https://drupal.org/project/xhprofDevelモジュールは総合開発用モジュールらしく、XHProfの取得以外にもいろんな開発用の便利機能があるとの事。最初はこっちを使おうと思ったんだけど。なんということでしょう。自分の環境ではDevelモジュールを有効化している状態でViewsを編集しようとすると、軒並みAjaxエラーが発生して、編集できないという、悲しいことが発生しました。原因追求もめんどくさいので、機能が絞られていて名前もズバリなXHProfモジュールを導入することに。Develモジュールでの設定方法も簡単なので、お好きな方をお使い下さい。XHProfモジュールのインストールで、ここで一つ注意点が。このモジュール正式バージョンはCallgraph(プロファイル情報のグラフ表示)に対応していない(2013年8月4日時点)ので、Callgraph対応版のXHProfモジュールをインストールする必要があります。このモジュール自体、ある程度枯れているかなと勝手に判断して、この対応版のソースを使うことに。Drupalにインストールし、モジュール一覧から有効化設定。outputリンクを押下で、無事プロファイルが確認可能。graphをクリックでグラフも確認OK。