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
WordPress 3.5.2にアップグレードしました

WordPress 3.5.2 がリリースされていたので、当ブログもアップグレー …

WordBench 東京
WordBench東京 7月「WordPressでのブログライティングとブログ運営」に参加してきたのでその感想など。

7月3日に開かれた、WordBench東京7月『WordPressでのブログライ …

前橋育英
2017年センバツ出場校WebサイトにリボンをかけるChrome拡張を作ってみました

あれこれ忙しいことが続くと、自分が楽しめるものでも作って現実逃避したくなりますね …

wordpress-logo-stacked-rgb
MySQLの最適化でWordPressのアクセス不能状態を復旧

XREAでWordpressのサイトをいくつか運営していますが、そのうちの一つが …

バイラルメディア
WordPressで初めてのバイラルメディアを一時間で作る方法

先日、SUPOCON という初めて作ったバイラルメディアのサイトを公開したのです …

ネットショップ
EC-CUBEでサーバー移行するときの作業手順まとめ

サイト公開までは開発用ドメインで EC-CUBE を作成しておき、完成したらごっ …

プログラミング
ウィンドウのスクロール位置を保持したままページ遷移する方法

ウィンドウのスクロール位置を保持したままページ遷移する方法を調べていまして、ざっ …

テスト
「SonicGarden Study #05」を見てテストについて感じたこと

先日、Ustreamで配信されたソニックガーデンさん主催のオンライン勉強会「So …

Gravatar
Gravatar Widgetプラグインでサイドバーにプロフィール画像を表示してみた。

Gravatar Widget Gravatar WidgetというWordPr …

棋士出身地マップ
将棋棋士データベースで遊ぶ(5)〜棋士出身地マップに女流棋士を追加〜

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