Nucleus(JP)フォーラムNucleus(JP)フォーラムNucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。登録ログインログインしていません。NP_znItemCache(アイテムをキャッシュして表示速度を向上)記事を変換するタイプ(以下、記事整形系と呼びます)のプラグインを多用すると、重たくなりがちです。自分がその手のプラグインを多く使用(作成)しているので、アイテムのパース前イベント(PreItem)の結果をキャッシュすることで、ページ生成速度を向上させるプラグインを書いてみました。効果の程は、インストールしている他の記事整形系プラグインによって、かなり異なります。多用している場合は、結構効果が出ると思いますが、そうでない場合、ほとんど効果を得られません。記事整形系を使っていない場合、効果はありません。ぼくのブログでは、無茶なほど、この記事整形系を入れているので、下記のような結果が出ました。メインの目次ページ(アイテム10件)をNP_Benchmarkで測定してみました。(ページ生成速度、約1400%向上↑)こんなに速度が向上するブログは、たぶん他にはないと思います。記事整形系を入れ過ぎなんです。個別アイテムページは、アイテムが1件なので、差は少なくなります。「キモチ速くなればしめたもの」くらいでお願いします。【使い方】インストールするだけです。キャッシュファイルを保存するためのcacheディレクトリを自動生成しますので、plugins/znitemcacheディレクトリのパーミッションを777等の書込可にしておいて下さい。【プラグインオプション】Cacheの寿命キャッシュファイルの更新サイクルです。スキップさせないプラグインを指定できますので、かなり長めに設定しておいても問題ないと思います。)NP_TagEXのようなプラグイン対策です。URLに指定パラメータが存在する時だけ、指定プラグインを動作させます。(NP_TagEXは、ハイライト処理のため、パラメータが投げられた時だけ、動作させる必要があります。)常に動作させるプラグインこのNP_znItemCacheで、スキップさせないプラグインを指定します。NP_LinkCounterを指定すると、記事内のリンク数のカウントがリアルタイムになります。(ここで設定しない場合、「Cacheの寿命」で設定したサイクルが最大タイムラグとなります。)今、全てのキャッシュファイルを削除しますか?「はい」にしてプラグインオプションを更新すると、全キャッシュファイルが削除されます。modeキャッシュファイルを読み込んだ場合、アイテムの本文の頭に、[Cache]という文字が付くようになります。動作を視覚的に確認したい時には、「はい」に設定してください。最新バージョンの確認をしますか?公開している最新のバージョンかどうかの確認ができます。(ページの下の方に出ます。0.01をお使いの方(※1):プラグインオプションが追加されていますが、再インストールの必要はありません。ファイルの上書きだけで、自動的にプラグインオプションが追加されます。※1・・・対象は、ぼく以外1人しかいませんが、Re:[プラグインで使用するテーブルの変更]←これをやってみたかったんです。1ファイル」なので、ファイルサイズを最小限に抑える事ができます。ぼくのブログで、700KB(キロバイト)程度です。編集したアイテムは、自動的にキャッシュがクリアされます。【URL単位でキャッシュするタイプと比較して】URL単位ではなく、アイテム単位でキャッシュファイルを使いまわすため、URLにパラメータを埋め込むような、Tag系プラグインとの相性が良いと思います。使いまわすということは、トータル的なサーバ負荷が軽減されるのではないかと思います。(使い方にもよると思いますが。k!ngさんのNP_Codebeautifierを参考にさせていただきました。ありがとうございます。#Andyさんの助言ですっきり生まれ変わりました。ありがとうございます。記事整形系プラグインを使っている方、良かったらお試しください。ベンチマークをこのトピックに投稿していただけるとうれしいです。(ぼくのブログ以上に記事整形系を入れている方は、多分いないでしょう。私がおバカNo.1です。)yuさんのNP_Benchmarkでベンチマークがとれます。「ベンチマーク手順」と、「効果が出る使用環境」を詳しく書いてみました。NP_znItemCache(アイテムをキャッシュして表示速度を向上)佐藤(な)さま、かゆい所に手が届くプラグイン、幾つもお世話になってます。インストールしてみました。私のアイテム(本文)にはテーブル・タグで括ったものが多いのですがそのアイテムは表題のみ表示され本文には何も表示されません。(テキストのみの記事は表示されます)。リスト・タグの記事も同様です。アンインストールすれば元に戻るのですが。私の環境固有のものかもしれませんが一応ご報告まで。NP_znItemCache(アイテムをキャッシュして表示速度を向上)On3さん、バグレポートありがとうございます。ウィンドウ風の面白いスキンですね。NP_znItemCache(アイテムをキャッシュして表示速度を向上)特定の記事だけがうまく動作しない状況で(ぼくのサーバで再現ができないので)、結構、煮詰まっております。On3さん、もしよろしければver0.021を、お試しいただけませんでしょうか?(NP_znItemCache.phpを上書きするだけでOKです。)うまく動作しなかった場合、どこで問題が発生したのかを、表示するようにしたものです。これにより、原因の絞込みが出来るかもしれません。empty]と表示します。error]と表示します。error]と表示します。プラグインオプションから、一旦、キャッシュファイルを削除していただいてから、ご確認いただければと思います。あつかましいお願いをしてしまいまして、申し訳ございません。お付き合いいただけるとうれしいです。改善できたようですので、動作確認用は削除しました。あつかましいお願いをしてしまいまして、申し訳ございません。お付き合いいただけるとうれしいです。ない、こちらこそ宜しくお願いします。modeで検証しました。「空データを保存」のようです。http://on3.jp/sample3.jpg通常表示はこんな感じhttp://on3.jp/sample4.jpg但し、テーブルタグやリストタグだけのアイテムでもきちんと表示出来ているものもあります。NP_znItemCache(アイテムをキャッシュして表示速度を向上)On3さん、早速テストしていただいて、ありがとうございます。empty]が出たのですね。(キャッシュ処理より前の時点で、アイテムのbody参照が空になっている状態)考えていた範囲の中では、一番バラツキ(不安定要素)が少ないかなと思っていた箇所でした。さんの発言:但し、テーブルタグやリストタグだけのアイテムでもきちんと表示出来ているものもあります。テーブルや、リストのhtmlタグは、直接記入されているのでしょうか?テーブルを自動で作成するプラグインとかをお使いなのでしょうか?(だとしても問題ないはずなのですが)質問ばかりですみません。よろしければ、使用されている他のプラグインも教えていただけませんでしょうか。お手数をおかけします。htmlタグは、手打ちしてます。」という状態のものはないのでしょうか?前回投稿時のテストではありましたが今回改めてテストした結果、出現しませんでした。emptyのキャッシュファイルはすべて以下のようになってます。NP_znItemCache(アイテムをキャッシュして表示速度を向上)On3さん、ありがとうございます。ver0.022です。プラグインオプションからの、キャッシュファイル削除をお願いします。NP_znItemCache.phpを上書きするだけでOKです。改善できたようですので、動作確認用は削除しました。NP_znItemCache(アイテムをキャッシュして表示速度を向上)お疲れ様です。何かの拍子に出現するのでもう少し検証してみます。NP_znItemCache(アイテムをキャッシュして表示速度を向上)On3さん、ありがとうございます。さんの発言:ただ、何かの拍子に出現するのでもう少し検証してみます。同じアイテムでも、出たり出なかったりするのでしょうか?うぅー、何か根本的に、ぼくの着眼点が違うのかな。視点を変えて、考え直してみます。思わずふきだしました。NP_znItemCache(アイテムをキャッシュして表示速度を向上)「アイテムのカラ騒ぎ」の件です、お世話様です。今現在の結果ではアーカイブページ(NP_TitleListに置き換え)から入ると現れます。テーブルタグ云々は関係ないみたいです、すみません:oops:分かったような分からないような結果ですが一応ご報告まで。いぢり回した為、基本的なところでブログ全体の設定を誤っているかも。さんの発言:テーブルタグ云々は関係ないみたいです、すみません:oops:とんでもないです。情報ありがとうございます。(感謝)いろいろ再確認していたのですが、(久しぶりPHPマニュアルとにらめっこ)決定的な原因は見つかりませんでした。できるだけ、PHP構文的に行儀良く(?)書き直したつもりなのですが、どうかなぁ。今回は、ちょっと大きく変更しましたので、このトピックの最初の投稿のファイルを更新しました。ver0.023です。アンインストールして、解凍ファイル・ディレクトリを全てアップ後、再インストールする必要があります。お手数をおかけしますが、また確認していただけますでしょうか。何度も本当にすみません。(アイテムタイトルなどより前に)表示し、キャッシュしないようにしました。次にページを表示する時にうまくいけば、その時キャッシュされます。(キャッシュファイルが破損した場合などにも対応してみました。さんの発言:今現在の結果ではアーカイブページ(NP_TitleListに置き換え)から入ると現れます。なんとも、不思議な現象ですね。んー、、、ぼくのサーバ(別の2つで確認)で再現できないので、かなり手間取っております。NP_znItemCache(アイテムをキャッシュして表示速度を向上)[size=150:cp0mwl3o]GoooooooooL!カラ騒ぎの件、私のブログでは見事にゴールしました。佐藤(な)さまありがとうございました、そしてお疲れ様でした。さんの発言:[size=150]GoooooooooL!カラ騒ぎの件、私のブログでは見事にゴールしました。佐藤(な)さまありがとうございました、そしてお疲れ様でした。まじっすか!本当?!良かった!でも、また何かありましたら、よろしくお願いします。リファレンスを含む配列を、値渡しするように統一したのが良かったのかな?On3さん、本当にありがとうございました。NP_znItemCache(アイテムをキャッシュして表示速度を向上)今読み返して気が付きました。」じゃ「ぐーーーーる」ですね、お恥ずかしい限りでございます。恥ずかしいのでレス不要に願います。NP_znItemCache(アイテムをキャッシュして表示速度を向上)こんにちはznitemcache使わせていただきました残念ながら、速度向上がみられませんでした。試したのがサーバーが遅くなる時間帯だったからかもしれません。znitemcacheの設定はデフォルトで使用しました。別の時間に試して変化があるようなら報告したいと思います。NP_znItemCache(アイテムをキャッシュして表示速度を向上)ももしんさん、ありがとうございます。試したのがサーバーが遅くなる時間帯だったからかもしれません。NP_znItemCache使用・未使用を続けて計測していただければ、時間帯はいつでも良いかなと思います。具体的なベンチマークのとりかたを書いてなくてすみません。あと、どんな使用環境で効果があるのかが、非常に分かり難いですよね。これまた本当にすみません。:oops:このあと、追加投稿しますね。ももしんさん、ベンチマークレポートありがとうございます。NP_znItemCache(アイテムをキャッシュして表示速度を向上)「ベンチマーク手順」と、「効果が出る使用環境」を詳しく書いていませんでした。このトピックの最初の投稿に追加しようかと思ったのですが、全体が長文になってしまうので、別記事にしました。【ベンチマーク手順】[list=][*]必要なプラグインをアップロードまず、NP_Benchmarkと、NP_znItemCacheを、pluginsディレクトリにアップロードしておきます。Adminを開いておきます。(ブラウザキャッシュ対策?)[/*][*]NP_BenchmarkをインストールAdminページのウィンドウ(タブ)でインストールします。プラグインオプション「PostSkinParse」を「はい」にすれば、スキンを編集することなく手軽に、「スキンパース前~スキンパース後」の所要時間を測定する事ができます。[/*][*]すぐNP_znItemCacheをインストールできるようにスタンバイAdminページのウィンドウ(タブ)で、NP_znItemCacheを選択し、「プラグインのインストール」ボタンを押すだけでインストールされる状態でスタンバイしておきます。(作業時間短縮のためです。)(バラツキの少ないサーバの場合、スタンバイしておかなくても良いかも)[/*][*]indexページの計測indexページのウィンドウ(タブ)をリロードし、5回の測定値をメモしておきます。(NP_znItemCacheなし)[/*][*]NP_znItemCacheをインストールAdminページのウィンドウ(タブ)でインストールします。スタンバイしておいた場合、「プラグインのインストール」ボタンを押すだけです。ベンチマークをとる場合、プラグインオプションの設定は不要です。[/*][*]indexページの計測indexページのウィンドウ(タブ)をリロードし、5回の測定値をメモしておきます。(NP_znItemCacheあり)[/*][*]NP_znItemCacheをアンインストールAdminページのウィンドウ(タブ)で、NP_znItemCacheをアンインストールします。[/*][*]indexページの計測indexページのウィンドウ(タブ)をリロードし、5回の測定値をメモしておきます。(NP_znItemCacheなし)[/*][*]NP_znItemCacheをインストールAdminページのウィンドウ(タブ)でインストールします。[/*][*]indexページの計測indexページのウィンドウ(タブ)をリロードし、5回の測定値をメモしておきます。(NP_znItemCacheあり)[/*][/list]手順5から以降は、できるだけスピーディーに行った方が良いかと思います。手順8以降は念のためということで、バラツキの少ないサーバの場合、不要かと思います。結果は、NP_znItemCacheなし(10回)平均:*.**秒NP_znItemCacheあり(10回)平均:*.**秒というような感じ。実際に効果が出るのは、「アイテムパース前イベント」に動作するプラグインを多用している場合のみです。言っても、「なんじゃそりゃ?!」って感じですよね。具体的に、対象プラグインを洗い出すには手間がかかり過ぎるので(すみません)、拙作プラグインを列挙しておきます。Flash設置などようは、記事投稿で本文や、続きに入力した文字を、変換するようなプラグインが対象です。(厳密に言うと、event_PreItemが存在するプラグインが対象です。NP_znItemCache(アイテムをキャッシュして表示速度を向上)バージョンアップしました。ver0.024です。このトピックのトップにアップしてあります。前版まで、キャッシュはアイテム単位のみでしたので、「ポップアップなどのRSSで動作が異なるもの」に対応できていませんでした。「URLに特定のパラメータが存在する場合、指定プラグインの動作をキャッシュしない機能」のパラメータ判定をFancyURL-2に対応させましたが、パラメータ名とその値の両方に反応します。何らかのプラグインの独自パラメータの値として「tag」が存在する場合も対象となります。(分かり難い説明ですみません。