More Related Content
Similar to WordPress関数の処理コストを考えよう
Similar to WordPress関数の処理コストを考えよう (20)
More from Naoki Matsuda (8)
WordPress関数の処理コストを考えよう
- 2. 自己紹介
松田直樹
主な著書(共著)
2012年上半期
コンピュータ部門
効率的なサイト制作のためのDreamweaverの教科書【CS5.5対応版】
よくわかるDreamweaverの教科書【CS6対応版】 22位
WordPress関数の処理コストを考えよう
- 4. 特に、テンプレートタグ。
bloginfo() wp_title() the_tags()
the_title() wp_nav_menu()
the_category() the_permalink()
have_posts() the_content()
the_excerpt() get_template_part() the_post()
get_the_term_list() get_post_type()
WordPress関数の処理コストを考えよう
- 6. ですが、
WordPress関数の処理コストを考えよう
- 8. 静的ページの場合
リクエスト Onload
レイテンシ ファイル読み込み レンダリング 表示
レスポンス 完了
動的ページの場合
リクエスト Onload
PHP処理 レイテンシ ファイル読み込み レンダリング 表示
レスポンス 完了
WordPress関数の処理コストを考えよう
- 9. 静的ページの場合
リクエスト Onload
レイテンシ ファイル読み込み レンダリング 表示
レスポンス 完了
動的ページの場合
リクエスト Onload
PHP処理 レイテンシ ファイル読み込み レンダリング 表示
レスポンス 完了
WordPress関数の処理コストを考えよう
- 10. 処理コストとは
• サーバでの処理時間
• サーバでの処理による負荷
• 閲覧者の待ち時間
WordPress関数の処理コストを考えよう
- 18. functions.php に、以下のコードを追加して計測
function scripts_include() {
$path = get_stylesheet_directory_uri();
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js' );
wp_enqueue_script( 'conf', $path.'/js/conf.js', array('jquery'));
wp_enqueue_script( 'easing', $path.'/js/jquery.easing.1.3.js', array('jquery'));
wp_enqueue_script( 'cookie', $path.'/js/jquery.cookie.js', array('jquery'));
wp_enqueue_script( 'fancybox', $path.'/js/jquery.fancybox.pack.js', array('jquery'));
wp_enqueue_script( 'transform', $path.'/js/jquery-css-transform.js', array('jquery'));
wp_enqueue_script( 'hashchange', $path.'/js/jquery.ba-hashchange.js', array('jquery'));
wp_enqueue_script( 'backgroundPosition', $path.'/js/jquery.backgroundPosition.js', array('jquery'));
wp_enqueue_script( 'google-maps-api', 'http://maps.google.com/maps/api/js?sensor=false', array(), NULL );
wp_dequeue_script( 'parent-script' );
wp_enqueue_style( 'module', $path.'/css/module.css' );
wp_enqueue_style( 'fancybox', $path.'/css/jquery.fancybox-1.3.4.css' );
wp_dequeue_style( 'parent-style' );
}
add_action( 'wp_enqueue_scripts', 'scripts_include', 10 );
WordPress関数の処理コストを考えよう
- 20. 0.000497sec
速い
気になるほどのコストではないけど。
* サーバーのスペックや環境によって、数値は異なります
WordPress関数の処理コストを考えよう
- 28. ただし
毎回、DBにアクセスするわけではありません。
CACHE
siteurl
blogname
blogdescription
home
template
stylesheet
rewrite_rules
DB内の主要な値は、サーバのメモリ上にキャッシュされる
WordPress関数の処理コストを考えよう
- 32. bloginfo()
apply_filters('bloginfo', ~);
add_filter( $filter, 'wptexturize' );
add_filter( $filter, 'convert_chars' );
add_filter( $filter, 'esc_html' );
3つのフィルターを処理している
WordPress関数の処理コストを考えよう
- 33. general-template.php 488行目
apply_filters('bloginfo', ~);
default-filters.php 96行目
add_filter( $filter, 'wptexturize' );
add_filter( $filter, 'convert_chars' );
add_filter( $filter, 'esc_html' );
* WordPress 3.4.2 の場合
WordPress関数の処理コストを考えよう
- 34. 要するに、
bloginfo()
の内々的にも
なんやかんやの処理が行われている
WordPress関数の処理コストを考えよう
- 36. 決まりきった値
の出力は、
テンプレートに静的に記述したほうが
パフォーマンスは 上がる。
ちょっと
WordPress関数の処理コストを考えよう
- 37. チリつもです。
静的にすれば、コストはゼロ
by xJason.Rogersx WordPress関数の処理コストを考えよう
- 38. • 会社名
• サイトブランド名
• JSファイルのパス
• CSSファイルのパス
運用フェーズでは
ほとんど変更しないですよね
WordPress関数の処理コストを考えよう
- 39. <title>
<?php wp_title(' | ', true, 'right'); ?>
<?php bloginfo('name'); ?>
</title>
<title>
<?php wp_title(' | ', true, 'right'); ?>
株式会社まぼろし
</title>
WordPress関数の処理コストを考えよう
- 43. このような場合、
処理コストを節約できる
• 配布するテーマではない
• 企業サイト・受注案件など、専用性の
高いテンプレートである
• テンプレートを変更する頻度が低い
• アクセス過多による負荷を考慮したい
WordPress関数の処理コストを考えよう
- 44. もちろん
デメリットもあります
• テンプレートの管理性
• テンプレートを流用しにくい
• プラグインとの相性
• 親テーマ ⇔ 子テーマ の連携がしにくい
• Cacheプラグインで解決
WordPress関数の処理コストを考えよう