rui live note

WordPress、PHP、子育て、ブログ、将棋、コワーキング、子育て、群馬等に関する日々感じたことを書いているブログです

*

WordPressのコア動作を解析できるプラグイン「Prime Timeline」を使ってみた

      2015/05/27   WordPress, 開発

  • このエントリーをはてなブックマークに追加
  • Pocket

Prime Timeline

先日読んだ「詳解 WordPress」の中でも紹介されていたプラグイン「Prime Timeline」が気になったので試してみました。

Prime Timeline プラグインとは

Prime Timeline は、WordPress の処理状況を解析して、時系列に何が行われているかを閲覧することができるプラグインです。いわゆるプロファイラという開発者向けの機能ですね。

このプラグインによって処理状況を可視化することでデバッグやパフォーマンスをチェックすることができたり、また学習用途として WordPress のコアの動きを調べることができます。

Prime Timeline を使ってみる

インストール

プラグインのページからダウンロードするか、WordPress のプラグイン管理画面から ”Prime Timeline” と検索して、プラグインをインストールおよび有効化すれば準備 OK です。

Prime Timeline をインストール後、ログインしている状態で WordPress を開くと、上部ツールバーのメニューに「Prime Timeline」という項目が追加されます。

Prime Timeline

メニューの「Prime Timeline」をクリックすると、ずらりとプロファイル情報が一覧で出てきます。初めて見ると、WordPress って1ページ表示するのにこんなに処理動いてるんだ・・・と驚くかもしれませんね。

Prime Timeline

プロファイル情報には、次のような情報が時系列に並んで表示されます。

  • 読込済みファイル
  • SQLクエリ
  • 通過した全てのフック
  • コールバック登録済みフック
  • コールバック未登録フック
  • ボトルネックポイント

コードレベルではなかなか表に出てこない SQL 実行クエリとかも見られるのは、すごく便利ですね。

ボトルネックの調査

ボトルネックポイントの隣にある入力フィールド(自分の環境だとちょっとレイアウトが崩れて折り返した場所に出ていました)で、ボトルネックになっている処理の抽出ができます。

デフォルトだと「10」(10ミリ秒)が表示されていますが、例えばこれを「100」(100ミリ秒)に変更して「ボトルネックポイント」をクリックすると、100ミリ秒以上時間がかかっている処理だけが絞りこまれて一覧表示されるようになります。

20150526_primetimeline4

プラグイン沢山入れたり、ガリガリカスタマイズかけてたら何だか動作が遅くなってきた・・・。そんな場合の問題箇所を特定するのにかなり効果を発揮しそうです。

プラグインの動きをチェック

簡単な自作プラグイン my-plugin を作ってみて、その挙動を解析してみます。

wp-content/plugins/my-plugin/my-plugin.php を作り、下記のようなコードを入力します。

プラグインを有効化して投稿記事を表示してみましょう。プラグイン my-plugin で追加している「テストです。」の文字が表示されることが分かります。

プラグイン

ではこのページで、Prime Timeline のプロファイル情報を表示してみると・・・。

73行目で、まずプラグインの my-plugin.php ファイルが読み込まれていました。

プラグイン

そして、455行目で my_add_content() 関数が、the_content フィルターフックに追加されていることも分かります。このタイミングで my-plugin の処理が実行されたわけですね。

プラグイン

プラグインが実際どのように実行されているのか、視覚化されることでとても分かりやすくなりますね。

参考サイト

プラグインの作者であるプライム・ストラテジーさんのブログでも詳しく解説されていますので、参考にしてみてください。

まとめ

以上、Prime Timeline の紹介でした。

テーマやプラグインを作成する開発者の方には、特に勉強になるプラグインだと思いますので、ぜひ試してみてはいかがでしょうか!

ad

この記事が気に入ったらシェアしてもらえると嬉しいです!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • follow us in feedly
  • RSS

  関連記事

鍵
WordPressを強化するためのセキュリティ対策32項目

みなさんの WordPress はセキュリティ対策できてますか? 世界中の We …

鍵
WordPressで不正アクセス履歴がチェックできるプラグイン「Crazy Bone(狂骨)」でセキュリティ意識を高めよう

とあるサイトのお客さんから、WordPress管理画面のログイン履歴が確認したい …

クエスチョンマーク
EC-CUBEでプラグインインストール後に「’DOMDocument’ not found」エラーが出る場合の解決策

EC-CUBE でとある新しいプラグインを入れて有効化したら、システムエラーが出 …

stinger0003
Stingerで関連記事に表示される対象カテゴリーを暫定カスタマイズする

以前 WordPress テーマを Stinger に切り替えてから、あまり詳細 …

WordPress
WordPress 3.5.1に更新したのでそのアップグレード手順まとめ

WordPress Logo / Phil Oakley 久しぶりのブログ更新で …

command line
svnコマンドでリポジトリ作成する手順

時代はgitなどの分散バージョン管理システムですが、私はまだ公私ともSubver …

iMac
EC-CUBEでユーザー独自のセッション情報を管理する

EC-CUBE をカスタマイズしていると独自のセッション情報を使いたいケースが出 …

棋士名ワードクラウド
将棋棋士データベースで遊ぶ(7)〜棋士名でワードクラウドを作る〜

※この記事は「将棋 Advent Calendar 2016 – A …

pigeon
WordPressから留守番をする子どもの帰宅確認メールを受け取る(家庭を支える技術 Advent Calendar 2016 9日目)

※この記事は「家庭を支える技術 Advent Calendar 2016」の9日 …

CentOS
CentOSでコンソールが文字化けするのをLocale変更して直す

CentOSにSSHでログインしてコンソールをいじってると、マルチバイト文字が文 …