XPCOM サービスへの頻繁なアクセスを効率化するテクニック

拡張機能や XUL アプリにて、 JavaScript から特定の XPCOM サービスを頻繁に参照する際に、いったん取得した参照をキャッシュすることで効率化することがよくあります。そのためには、取得した参照を単にグローバル変数として保持する方式や、初回参照時にオブジェクトのゲッタとして定義する方式など、色々な方式があります。また、 Firefox 3.6 (Gecko 1.9.2) ではキャッシュを行うための汎用の XPCOMUtils.defineLazyServiceGetter が導入されたことで、新しい書き方ができるようになりました。それらの方式をまとめたブログ記事を書きましたので、ご覧ください。

SCRAPBLOG : XPCOM サービスへの頻繁なアクセスを効率化するテクニック