Jan 27, 2009

TagSupplementals Plugin 0.20公開

いろいろあって(?)、TagSupplementalsプラグインをアップデートしました。今回のアップデートは、MT3時代から引き摺ってきたコードを改めてモダンな(MT4の)プラグイン構成に準拠させることを主な目的としています。したがって機能追加はありません。今回のバージョンからMT 4.2以降のみをサポートします。

TagSupplementals - ogawa - Google Code

また、このバージョンではMemcachedを利用したときにmt:RelatedEntriesのレンダリング処理を高速化する機構が実装されています。具体的には共起行列をMemcached上にキャッシュして再利用するようにしています。この最適化による効果は以下の通り。

青と赤が以前のバージョンをMemcachedなし・ありで実行した場合の再構築時間、オレンジが今回のバージョンをMemcachedありで実行した場合の再構築時間です。13%くらい速くなっていることが分かります。もちろん、mt:RelatedEntriesのレンダリング単体だけ測ればもっとずっと速くなっているはずです。

mt:RelatedEntriesのレンダリング時間のみ計測したところによると、Memcachedを使わない場合は31.6秒、Memcachedを使う場合は25.7秒(旧バージョン)、16.0秒(新バージョン)。

他にも、ブログ記事を更新したり削除したりすることによってキャッシュに載っている共起行列の再計算が必要になった場合には、自動的に関連ブログ記事(つまり、タグを共有している記事)に対応するキャッシュを無効化するようにしています。

今後はこのコードベースを元に実用的な性能を実現に向けブラッシュアップしていきます。

ところで、このプラグインのmt:RelatedEntriesでやろうとしているのは、結局ものすごく単純で、オンラインで計算可能なRecommendation Engineなんですよね。本当はMT::Recommendableみたいなインタフェースだけ切っておいて、再構築時に計算してしまえるようなlight & poorなengineも、バッチジョブとして実行されるheavy & richなengineも実装できるようにするのがよいかもしれませんね。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com