Diary/Monthly/201305

ID: 23 | 作成日: 2013/05/01 [Wed] 00:00:00 | 最終更新: 2013/05/22 [Wed] 02:55:18
FrontPage / Diary / Monthly / 201305

2013/05/24 [Fri]

負荷を減らす改変

前日の日記で少し触れましたが、久しぶりにPolyMoNoteの改変を行い、現在しばらく運用などをしつつテストしている段階です。

改変の内容的には、処理速度の向上・負荷減らしを目的としたパフォーマンスの向上になります。

自分のサイトをPolyMoNoteで運営・・・
というか、それが目的で作ったわけですが、とにかく自サイトで利用していて、現在の総ページ数が約1,200あります。

そして、ページ数が800を越えたあたりから、一気にサイト検索("SEARCH"コマンド)の時間がかかるようになり、1,000ページを越えたあたりから、DIARYプラグインなどの日記取り込み系プラグインを動かしているページの負荷が増えてきました。

通常の1ページだけだと、ページが増えても表示にかかる時間はあまり変わらないんだけど、DIARYプラグインのような他のページを複数取り込んで表示するようなプラグインは、やはり総ページ数の影響を受けてしまうようです。

まぁ、サイト内検索については、検索するページ数が増えればそれだけ作業量が増えるわけですから、時間もかかるのは当たり前なのですが・・・

そこで、少しでも処理にかかる時間を減らせるようにと、色々修正を試みたわけです。

最初は、ソースを見直しつつ地味な修正を繰り返して、サイト検索については最大1/3くらいかかる時間を短くすることに成功。
日記系については、最大10ページ分、他のページを取り込むことと、その分プラグインの実行数も多くなるので、そのあたりの見直し・・・
特に、日記のカテゴリページへのリンクを自動でやってくれるDIARYCATEGORY_LINKプラグインは負荷が多いようなので、このプラグインを中心に色々と修正。

それで、ある程度は早くなったんだけど、どうにもピンとこないというか、もっと根本的な処理速度の上昇がさせられるのではないかと。

それで、色々と調べてみた結果、処理の高速化のために利用しているキャッシュファイルへのアクセスが、ページ数が増えたことで、取り込み系プラグインで複数ページを取り込んで表示するようなページでは、他のページよりもページリストのキャッシュファイルにアクセスすることが多くなるため、かえって遅くなってしまうことがわかりました。

そこで、ページ表示に対してページリストのキャッシュファイルへのアクセスを一回で済ませられるように修正したところ、ページ表示の速度がかなり速くなり、DIARYプラグインを動かしているページで1/3~1/5、サイト検索については最大1/10まで速くなりました。

もうしばらく自分のサイトで動かしてみて、問題なければ配布しようかと思います。

ただし、処理の時間が増えだすのは、僕のように日記がメインで取り込み系のプラグインを多く利用していて、かつページ数がかなり多い場合なので、ページ数が多くても取り込み系のプラグインをあまり利用していなかったり、ページにはそのページのテキスト内容のみだと、処理はそう重くなりません。

2013/05/21 [Tue]

ver.0.9.51β@アップデート

せっかくなので開発日記とかもやってみるか・・・と、作ってみたけど、案の定ほとんど更新していませんね(苦笑)

今日、久々にPolyMoNoteのアップデート版を公開したので、ついでにちょっと記事でも書きます。

処理の実行の中には、その内容の完了や成功・失敗云々のメッセージを表示するものがあるのですが、そのメッセージ表示のタイミングによってエラーが発生したので、今回の更新はそちらを修正したセキュリティアップデートのみです。

実は、今年に入ったあたりから、あまりプログラミングが出来なかったのですが、ここ一~二週間ほどはPolyMoNoteのアップデート作業を中心に行っていました。
・・・で、その作業中に前述の不具合に気づき、正直かなり色々とソースをいじっていたため、中途半端な改変状態で公開するのもなぁというのがあり、あと正直まったく普及していないCMSなので、すぐに公開するかは悩んだのですが、セキュリティのことを考えるとそういうわけにもいかないので、とりあえず前バージョンからエラー部分のみを修正したものをアップすることにしました。

この不具合は"ver.0.9.50β"のみなので、それ以前のバージョンでは起きませんが、それ以前のバージョンが持つ不具合が改変されているので、もしご利用の方がいたらできるだけ新しいバージョンを導入いただければと思います。

ちなみに、現在の改変作業ですが、一応一通り済ませてテスト中になります。
機能的な追加はありませんが、パフォーマンス向上のためにスクリプトを多岐にわたっていじっているので、アップデートの公開はもうしばらくテストして様子を見てからになります。

≪2012/08 | 開発日記