firefox 3が遅くなった→ SQLite reindexで解決&高速化

| コメント(11) | トラックバック(9)

Firefox 3を使っていて、起動が異様に遅くなっていて困っていました。
今回、どうやら解決した模様なので備忘録までに記載します。

Firefox 3にバージョンアップしてから、メインで利用しているPCで Firefox の起動が遅くて仕方がない、ipv6検索を無効にするとか試してみたけどもかわず、という状態でした。
だいたい同じAdd-onを 他のPCにも入れて利用していますが、そちらははそう遅くはないので、プロファイル系かあ、までは切り分けしてそのまま利用しておりました。
プロファイル再作成、面倒ですしね。

で、ふと思い立って Firefox 3 で利用している、SQLite データ群をかたっぱしから Reindex したら、
昔のスピードが再現しました。はやい!

改善:2つ
 1)起動が速くなった(起動に1-2分かかる→すぐ起動。劇的に改善。)
 2)サイト表示もはやい。 cookies などの処理がはやくなったため?

やりかた:
1)Firefox のプロファイルディレクトリを確認&バックアップ
 不明なときは、Firfoxまとめサイトなどで確認して下さい。
2)SQLite Manager エクステンションを入手。
https://addons.mozilla.org/ja/firefox/addon/5817
3)Firefox起動→SQLite Manager起動
 「ツール」→「SQLite Manager」
4)SQLite Manager で Firefox のプロファイルディレクトリ以下の places.sqlite ファイルを開く
「Database」→「Connect Database」でファイル選択。
5)SQLite Manager 左画面の Tables ツリーを開く
これがテーブル一覧。
 テーブル一覧からテーブルを1つ選択→右クリック→「Reindex Table」選択
 →「SQLite Manager : Confirm the operation」で「OK」ボタン
  sqlite-manager-reindex.JPG


6)次のテーブルを選択して、5)を繰り返す。
 どれがとか考えるのは面倒なので、テーブル全部。
7) データベースを閉じる。
  「Database」→「Close Database」


8) cookies.sqlite ファイルで 4)~7)を繰り返す
9)他にもサイズの大きな xx.sqlite ファイルがあればそれでも同じ事を繰り返す

goo Dictionary エクステンションを入れてれば、goodictionary.sqlite とか。

追記:便利ツールが公開されています。
 Firerox の SQLite reindex を自動で行ってくれる SQLite Optimizer をご覧下さい。
知らない人の間で改善が連鎖してゆく感じが楽しいです。
あ、連鎖かどうかはわからないか。。

続き:
修正:cookiesにはデフォルトでindexはありませんでした。
ですのでcookies.sqliteでのreindexは不要と思われます。

私は高速化?の可能性を考えてcookiesのhost にindex作成しています。
前後の効果は不明ですが。。

トラックバック(9)

トラックバックURL: http://www.sio.no-ip.com/mt/mt-tb.cgi/239

Firefox3が重い理由が 1つ分かりました いつ頃からだろうか・・・やたら Firefox3が重くなった。もう、泣きそうである。まさ... 続きを読む

Firefoxの起動がものすごく遅くて、アイコンダブルクリックしてから忘れた頃に... 続きを読む

自分のマシンに保存されているSQLiteのデータを再構築したら早くなるらしい。。。 firefox ... 続きを読む

今更ながら、 firefox 3が遅くなった→ SQLite reindexで解... 続きを読む

クリボウの Bookmarks - SQLite Manager (2009年5月13日 00:38)

試してみたところ、起動も(20 秒から7 秒に)サイト表示も(3 分の 2 くらい?)速くなっています。Firefox で履歴やブックマークを管理している... 続きを読む

Firefoxが異常に遅くなって困っています。ブログの更新をしている時に、そうい 続きを読む

Firefoxを使い続けていると、起動に時間がかかるようになってしまいます。履歴... 続きを読む

Firefox 3にして、もっさりと思い感じがあった。マシンのせいだろうとあきらめていたけれど、どうやら Firefox 内部で使われている SQLite... 続きを読む

久しぶりに(といっても2ヶ月ぶり)愛用しているタブブラウザFirefoxのアップデート版がリリースです。 ・「Firefox 3.0.11」公開、9件の... 続きを読む

コメント(11)

cookies.sqliteにindex作成しても意味ないよ
だってプライマリキーがあるし

anomymousさんへ
コメントありがとうございます。
そうですねえ、意図としてはcookiesを使うときはhostsを元に検索するよう実装していると思うのでhostにindexを作成してみたのですが、実際の効果があるかどうかはわかりません。
ちなみにcookiesのプライマリキーはidへ作成されているし、キーは重複を避けるためのもので検索の高速化になるものでもないと思います。

もしかしたらですが、ライブブックマークをたくさんしていませんか?
Firefox3はRSSをブックマークすればするほど起動が遅くなる致命的なバグがあります
もしそれが原因だったら下記で解決できるので参考ください
http://marilab.hp.infoseek.co.jp/firefox/bug329534.html

http://mozilla-remix.seesaa.net/article/118793069.html
SQLite Optimizerアドオンを使うとボタン一発や終了時に自動で最適化できますよ

下準備が面倒ですが、もう少し楽して最適化できます。

http://sasasin.net/diary/?date=20090512#p01

firefox のソース(netwerk/cookie/src/nsCookieService.cpp)を軽く追ってみましたが,

cookies.sqlite (TABLE moz_cookies) は,

起動時に SELECT で全部ガッと読み込んでいるようです
(メモリ上のハッシュテーブルに格納して,その後そのテーブルを利用する)

なので host フィールドに index を貼るのは,現在の Firefox のインプリメントでは効果がなさそうです。

はじめまして、とにかく1)~8)までを試してみました。
早くなりまして嬉しく思います。
定期的に実行しなければいけないのかが?なのですが...

めちゃくちゃ早くなりました。助かります。
0.1秒の積み重ねが、大きな非効率を産むと・・。
ありがとうございます。

kinaさんへ
コメントありがとうございます。
はやくなって何よりです。昔から利用している環境ならばずいぶん改善すると思ってます。

#スパム対策を厳しくしすぎて、コメント/トラックバックが保留で溜まってました。すみません。

ポンポンさん:
ふもふもさん情報の、「SQLite Optimizer」を試してみて下さい!

dayflowerさん:
ソースまで読んで確認いただいてありがとうございます。
そうですか、一括で読んでますか。。なんでDB使っているのだろう。

ふもふもさん:
ありがとうございます。早速ブログに記載しておきました。SQLite Optimizer、いいですね。

かなこさん:
ありがとうございます。
ライブマークは利用してないのですが、一応試してみます。

sasasin さん
ありがとうございます。
Linux環境では便利そうですね。(Windowsだとどちらが楽かはちょっと。。)

こんな面倒な事しないと駄目なのね きつね

コメントする

アーカイブ

ウェブページ

Get Firefox

Get Firefox Get Thunderbird
Powered by Movable Type 4.261

このブログ記事について

このページは、しっが2008年10月26日 22:17に書いたブログ記事です。

ひとつ前のブログ記事は「9/27-10/3 サーバ停止」です。

次のブログ記事は「三歩進んで二歩下がる」です。