当初はfirefox2系と比べ明らかに軽く快適に使っていたfirefox3 on eeepcなのですが、しばらく使っているとやたら重たくなってきました。何かする度にパフォーマンスメータが振り切って数秒復帰しないような状態。
これでは使い物にならないので少し調べてみると、案の定 .mozilla/firefox-3.0/<profile>が結構更新されている模様。SDメモリへの書き込み はメモリの寿命もさることながらやたら重いのが難点。
書き換えがそこそこ行われているのはタイムスタンプから判断して以下のファイル。
- sessionstore.js
- places.sqlite -- bookmarkファイル
- places.sqlite-journal
- cookies.sqlit
- signons3.txt
- urlclassifier3.sqlite -- フィッシングURLなんかが入っていたりするファイル
- urlclassifierkey3.txt
- prefs.js
- XUL.mfasl -- XULのキャッシュ
- compreg.dat
- ...
中でも比較的更新が多そうな大物はコメントをつけたplaces.sqlite, urlclassifier3.sqlite, XUL.mfaslの3つ。特にurlclassifier3.sqliteは他のファイルと比べ10倍くらい大きい。書き換え頻度はplaces.sqliteやcookies.sqlite,sessionsotre.jsが多いらしい。
などと眺めていても仕方がないので、ごっそりと/dev/shmの下にプロファイルをコピーし、シンボリックリンクを張ってみたところ、劇的に速度が改善されました。問題は最低でもログアウトする際にバックアップしておかないとまずい点。
eeeXubuntuにaptでインストールしたfirefox3(この記事を書いている時点でb4)で/usr/bin/firefox-3.0はシェルスクリプトなので$home/binなんかにコピーして適当にいじってrsync -auv するようにしてみました。
やり方:
1. 最低一回は普通に起動しておく。
2. 次に以下のようにしてコピー元とリンクだけのネタを作成。
cd $HOME/.mozilla
mv firefox-3.0 firefox-3.0-orig
rsync -auv firefox-3.0-orig /dev/shm/firefox-3.0
mkdir firefox-3.0
cd firefox-3.0
ln -s /dev/shm/firefox-3.0/* .
3. $HOME/bin/firefox-3.0などという名前のシェルファイルを作成。中身は以下の通り
#!/bin/sh
APPNAME=firefox-3.0
MOZDIR=$HOME/.mozilla
LIBDIR=/usr/lib/firefox-3.0-3.0b4
rsync -auv $MOZDIR/$APPNAME-orig/ /dev/shm/$APPNAME/
$LIBDIR/$APPNAME "$@"
rsync -auv /dev/shm/$APPNAME/ $MOZDIR/$APPNAME-orig/
以上でフラッシュメモリが壊れるかもという心配も少なくなり、動作も高速になりました。キャッシュファイルですが、保存する必要もないと思いますのでabout:configでbrowser.cache.disk.parent_directory を設定してさらに別なフォルダに移動させておくのが吉です。