[Wordpress][PHP] 表示速度をかなり向上させるちょっとしたコツ

2006年11月16日 木曜日 01時11分
E-Mail This Post/Page Print This Post/Page

今までプラグインをたくさん入れすぎて、ページのロードされる時間が極端に遅くなってしまっていたのですが、ちょっとしたスクリプトを作って速くさせることができました。これで体感速度が信じられないほど変わりました。え?何をしたかって?それはですね、秘密といいたいところですが、公開しちゃいます。

ご存知のとおり、Wordpress は php と mysql で動いていますが、デフォルトの機能だけだと、速度に関してはそれなりのパフォーマンスを発揮します。しかし、アーカイブをリストさせたり、統計をとったり、フィードを組み込んだりしていくうちにどんどん、動作が重たくなっていきます。

これは毎回ページがロードされる度に php が mysql からデータを呼び出して、条件に沿った計算結果を施していくような、サーバが非常に忙しくなってしまうような仕組みになっているからです。

これを、毎回その都度計算させないことができれば、サーバの負担が非常に減るわけです。もちろん PHP の醍醐味は ユーザーとのインタラクションによるダイナミックなコンテンツ作りですが、一定期間変わらない場所までページが呼び出されるたびにその都度計算させることはないわけです。

つまり、あまり動かないコンテンツを静的ページ、htm/txt データにコンバートしてしまい、それをロードさせることができれば、重たい処理を施していればいるほど表示速度が劇的に高上します。

このサイトで言えば、トップページの下部サイドバーとアーカイブは更新頻度が高くありません。それを利用して、それぞれサイドバーとアーカイブのphpテンプレートファイルを別々に読み込み、htmlファイルとして保存するスクリプトを作ります。そして、サイトのテンプレート側では、php ファイルを include() で読み込む変わりにコンバートされた html ファイルを読み込むわけです。

今回使用したのは以下のようなカスタム関数です。指定のディレクトリに読み込む php ファイルと同名でしかし拡張子は htmlにし、パーミション777でこのスクリプトとどう階層に保存します。そして $url に読み込むテンプレートファイルのアドレスを指定。

PHP:
  1. function reload ($url) {
  2. $file_contents = file_get_contents($url);
  3. $file_name = basename($url);
  4. if($file_renamed = preg_replace('/\.php/i', '.html',$file_name)){
  5. $fo = fopen($file_renamed, "w");
  6. } else {
  7. $fo = fopen($file_name, "w");
  8. }
  9. fwrite($fo, $file_contents);
  10. fclose($fo);
  11. }

このスクリプトを Cron Job にかけてあげれば、指定の時間ごとに htmlファイルは更新させることができ、かつその間の表示速度、サーバへの負担を軽減できます。レンタルしているサーバが Cron Job をサポートしていない場合、ページがアクセスされるごとに更新時間をチェックするスクリプトがこちらで公開されていますので、それを使用してもいいかもしれません。

追記:WordPress Plugin の WP-Cache が同様のメカニズムでキャッシュによるパフォーマンスの安定化を向上させてくれるようです。

追記:WebCron というオンラインのサービスが 一定の時間ごとに定期的に指定URLに ping してくれます。

参考サイト: http://www.bitfolge.de/pseudoc......on-en.html

Share This

この記事に関連するトピック

このエントリーへの Yahoogle Suggestions

Trackback this Post |

 

記事ヒット TOP 10

WordPress Tips from Social Bookmarks Jp

    There is no entries available for this category.

WordPress Tips from Social Bookmarks

    There is no entries available for this category.

WordPress Plugins from Social Bookmarks

    There is no entries available for this category.

IT 関連 NEWS

    There is no entries available for this category.

PHP関連 NEWS

    There is no entries available for this category.

PHP Tips from Social Bookmarks

    There is no entries available for this category.

PHPに関するフォーラムトピック

    There is no entries available for this category.

Tag Cloud

admin Admin Drop Menus Admin Memo Admin Panel advanced drop menus array unique blog cron dabeya Dagon Design Sitemap Generator dropcap Edit N Place error Feedburner game google hack html HTML CSS Internet NEWS Permalink Redirect PHP phpBB2 plugin RSS scripts search stattraq template the content Ultimate Tag Warrior Web Management Windows XP Wordpress WP Plugins WPページ  拡張子 カスタマイズ カスタム関数 カテゴリー コード セキュリティ タグ トップページ トラックバック フィード 投稿 抜粋 日本語 時刻 時間 正規表現 表示 記事

サイト メニュー

Blogtimes image
ぱそずき :D)‐く © 2008
Close
E-mail It