Hatena::ブログ(Diary)

Watsonのメモ RSSフィード

2010-02-10

FirefoxのSqliteファイルを最適化

FirefoxSqliteファイルを最適化したことがなかったので、ずいぶんとファイルサイズが大きくなっていました。WindowsだとSqliteファイルを最適化するためのAddonがあったりするけど、Mac対応のを探すのが面倒だったので書いてみました。

# -*- coding: utf-8 -*-
# Firefoxが使うProfileディレクトリに存在する
# sqliteファイルをvaccum、reindexするためのRakefile。

# Usage: rake -f optimize_firefox.rake

# profiles.iniが存在するパスを指定する
PROFILE_BASE_DIR = "~/Library/Application Support/Firefox/"
# Sqlite3のパスを指定する
SQLITE = "/usr/bin/sqlite3"

task :default do
  basedir = File.expand_path(PROFILE_BASE_DIR)

  pdirs = get_profile_dirs(basedir)
  pdirs.each do |dir|
    puts "==== #{dir} ===="
    files = Dir.glob(File.join("#{basedir}/#{dir}", '**/*.sqlite'))
    files.each do |file|
      optimize(file)
    end
  end
end

def get_profile_dirs(basedir)
  # profiles.iniからディレクトリパスを取得
  profiles = []

  File.open("#{basedir}/profiles.ini", "r") { |f|
    f.each_line do |line|
      if(line =~ /Path=(.+)/)
         profiles << $1
       end
    end
  }
  return profiles
end

def optimize(file)
  file.gsub!(/ /, '\ ')
  puts "**** [#{File.basename(file)}] ****"

  sh "#{SQLITE} #{file} vacuum"
  sh "#{SQLITE} #{file} reindex"

  puts
end

複数のプロファイルを使用している場合でもまとめて最適化するようにしてます。下のように実行します。あらかじめFirefoxは終了しておいてください。

$ rake -f optimize_firefox.rake
(in /Users/watson/ruby)
 ==== Profiles/35ep225x.default ====
 **** [storage.sqlite] ****
/usr/bin/sqlite3 /Users/watson/Library/Application\ Support/Firefox/Profiles/35ep225x.default/chaika/chaika-logs/storage.sqlite vacuum
/usr/bin/sqlite3 /Users/watson/Library/Application\ Support/Firefox/Profiles/35ep225x.default/chaika/chaika-logs/storage.sqlite reindex

 **** [content-prefs.sqlite] ****
/usr/bin/sqlite3 /Users/watson/Library/Application\ Support/Firefox/Profiles/35ep225x.default/content-prefs.sqlite vacuum
/usr/bin/sqlite3 /Users/watson/Library/Application\ Support/Firefox/Profiles/35ep225x.default/content-prefs.sqlite reindex

   :
   :

 **** [xulmigemo.sqlite] ****
/usr/bin/sqlite3 /Users/watson/Library/Application\ Support/Firefox/Profiles/35ep225x.default/xulmigemo.sqlite vacuum
/usr/bin/sqlite3 /Users/watson/Library/Application\ Support/Firefox/Profiles/35ep225x.default/xulmigemo.sqlite reindex

2008-09-09

Shiretoko Alpha 2とTraceMonkeyの感想

  • HTML 5 <video> 要素のサポート
  • web worker threads の最初のサポート
  • ドラッグ&ドロップによるブラウザウィンドウ間のタブの移動
  • XUL 内で Aero "Glass" の利用が可能になった
  • CSS 2.1 プロパティーのサポート: ::before and ::afterwhite-space:pre-line
  • CSS 3 プロパティのサポート: -moz-border-imageword-wrap: break-wordtext-shadow、box-shadow、column-rule
  • カラーマネジメントプロファイルの性能向上と新しい設定値
  • Shiretoko Alpha 2 リリース - えむもじら

    個人的にはtext-shadow、box-shadowをサポートし始めたのが大きいように思います。FireFoxはサポートする気がないのかと思っていましたし・・・。

    えむもじらさんのFirefox 3.1 の新 JavaScript エンジン TraceMonkeyでもパフォーマンス比較されていますが、TraceMonkeyは良さそうな感じです。が、livedoor Readerが全く動かないのが個人的に致命的です。正式版がリリースされるまでには TraceMonkey がまともになっている・・・はずと思いたいです。

    2008-04-03

    Webkit NightlyとFirefox 3 b5のJavaScriptパフォーマンス

    Firefox 3 b5がリリースされたので、またSunSpider JavaScript Benchmarkを使ってパフォーマンスを計測してみました。

    テスト実行トータル時間は以下の通りでした。

    Safari 3.0.412047.2ms +/- 0.3%
    Safari 3.14397.6ms +/- 0.2%
    Webkit Nightly (r30939)4415.4ms +/- 0.1%
    Webkit Nightly (r31535)3961.4ms +/- 0.1%
    Firefox 2.0.0.1217251.0ms +/- 0.4%
    Firefox 3 b45286.2ms +/- 0.3%
    Firefox 3 b54267.0ms +/- 1.5%
    Opera 9.2717078.6ms +/- 0.6%
    Opera 9.5 Beta (Build 4681)9567.8ms +/- 0.7%
    Opera 9.5 Beta (Build 4729)8866.8ms +/- 0.3%

    Firefox 3 b5 は Safari 3.1とほぼ同等。

    ※ CPU : 1.83 GHz Intel Core Duo, RAM : 2GB な iMac上で確認

    2008-03-11

    Webkit NightlyとFirefox 3 b4のJavaScriptパフォーマンス

    Firefox 3 b4がリリースされ Firefox 2と比較するとJavaScriptのパフォーマンスが2倍向上したと言われていますが、Webkit Nightlyと比べるとどの程度のものなのかSunSpider JavaScript Benchmarkを使って試してみました。

    テスト実行トータル時間は以下の通りでした。

    Safari 3.0.412047.2ms +/- 0.3%
    Firefox 2.0.0.1217251.0ms +/- 0.4%
    Webkit Nightly (r30939)4415.4ms +/- 0.1%
    Firefox 3 b45286.2ms +/- 0.3%
    Opera 9.5 Beta (Build 4681)9567.8ms +/- 0.7%

    予想以上にFirefox 3 b4が健闘してました。トータル時間でこれくらいの差であれば、体感的にあまり差を感じないかも。あとはAcid3テストをどちらが早くクリアするかかな。

    (ついでにOpera 9.5 Betaのパフォーマンスも計測してみました)

    ※ CPU : 1.83 GHz Intel Core Duo, RAM : 2GB な iMac上で確認

    2008-03-04

    最近のNightly Buildはスクロールが早くなった?

    Firefox 3 Betaはスクロールが異様に遅くて使う気にならなかったのですが、Apple WebKitに非公開API? Safariの高速さの秘密かで書かれていた記事の成果のおかげなのか、Firefoxの最近のNightly Buildはスクロールが早くなったのが体感できます。

    Firefox 3 Beta3と大差なかった。ろくに調べずにすみませんorz