CacheViewer の技術的な話
今までに CacheViewer を作る上で苦労した点とか。
- 起動が重い件について
- CacheVisitor が同期処理なので他の処置が割り込みできない
- 重い処理(Content-Type の取得とか全文検索の前処理)は
非同期処理でやってるけど、それでも重い - visitEntries 中に openCacheEntry すると落ちる
- flag="dont-build-content" すると速い
- データベースが RDF と SQLite のハイブリッドな件について
- これがパフォーマンス的に一番速かった
- RDF は xul:tree のテンプレート用で、SQLite は検索用
- メモリ上に作成した SQLite データベースを xul:tree のデータソースに
設定するには nsIXULTemplateQueryProcessor を実装すれば
良いが JavaScript で実装するとやっぱり重い。
(参考:Implement a custom XUL query processor) - MDN で解らないなら、ソースを読むべし
(参考:nsXULTemplateQueryProcessorStorage.cpp) - nsIXULTemplateQueryProcessor のサンプル拡張を作ってみた
- Task.jsm と Promise.jsm の使い方
- グローバル変数へのアクセスは遅いとか