2010-02-10
FirefoxのSqliteファイルを最適化
FirefoxのSqliteファイルを最適化したことがなかったので、ずいぶんとファイルサイズが大きくなっていました。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 ::after と white-space:pre-line CSS 3 プロパティのサポート: -moz-border-image、word-wrap: break-word、text-shadow、box-shadow、column-rule カラーマネジメントプロファイルの性能向上と新しい設定値
個人的には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.4 | 12047.2ms +/- 0.3% |
| Safari 3.1 | 4397.6ms +/- 0.2% |
| Webkit Nightly (r30939) | 4415.4ms +/- 0.1% |
| Webkit Nightly (r31535) | 3961.4ms +/- 0.1% |
| Firefox 2.0.0.12 | 17251.0ms +/- 0.4% |
| Firefox 3 b4 | 5286.2ms +/- 0.3% |
| Firefox 3 b5 | 4267.0ms +/- 1.5% |
| Opera 9.27 | 17078.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.4 | 12047.2ms +/- 0.3% |
| Firefox 2.0.0.12 | 17251.0ms +/- 0.4% |
| Webkit Nightly (r30939) | 4415.4ms +/- 0.1% |
| Firefox 3 b4 | 5286.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
