Nucleus高速化の為にNP_EzCacheを導入し、使用前後の処理時間を比較してみました。

別記事『Nucleus処理時間計測』ではNucleus全体の処理時間を計測しています。
その結果パース処理に負荷がかかっていることが判明し、改善策としてNP_EzCacheを利用させてもらいました。

NP_EzCacheはインストールや設定が容易で効果は絶大です。

サーバ環境

  • CPU: VIA C3 600MHz (4.5 x 133) Celeron 300A と同等の性能
  • Memory: 512MB
  • OS: Windows 2000 sp4
  • Apache 1.3.37
  • PHP 4.4.6
  • MySQL 3.23.58-nt

Nucleus環境

  • Nucleus 3.24 EUC
  • 当サイトのデータを開発環境へコピー
  • プラグインは30個弱+NP_EzCache
  • 記事の表示時間を計測

結果

  • PreSkinParse (スキンのパースの直前): 約0.56~0.6秒で通過
  • PostSkinParse (スキンのパースの直後): 約0.61から0.66秒通過

当サイトのデータを利用した場合、0.6秒強で処理が終了します。
別記事『Nucleus処理時間計測』では約1.8秒でしたのでNP_EzCache導入により全体の処理速度が1/3になった訳です。
初期化処理(PreSkinParseまで)に約90%、パース(PreSkinParse~PostSkinParse)に10%弱の割合です。

NP_EzCache導入前はパース時間だけで約1.3秒かかっていましたが、キャッシュを利用することで0.05秒(1/26)程度と劇的に高速化しました。

参考

コメント投稿、記事投稿、編集時にはキャッシュがクリアされます。
『頻繁に更新しないサイト』や『コメント』や『トラックバック』が少ない等の条件に当てはまれば効果的に利用できます。

頻繁に更新されるサイトではxml-rss2.phpだけキャッシュしてみて下さい。サーバ負荷軽減になります。
当サイトのxmlj-rss2.phpの処理時間はキャッシュ未使用の場合3秒程度かかっていましたが、NP_EzCache導入後は0.6秒(1/5)強になりました。

キャッシュでの高速化はインストールしているプラグインの特性や記事内容等にも左右されます。
計測に利用しているサーバも非常に非力(VIA C3 600MHz)なものです。参考程度に。

NP_EzCache設定例

当サイトではトップページ,xml-rss2.php,sitemap.xmlと各個別アイテムページをキャッシュしています。
以下は設定例です。


Cache URLs欄

/
/xml-rss2.php
/sitemap.xml
/item([0-9]+).html