Safari 4でキャッシュをオンメモリに保存する方法
自分用のメモで適当に書いたので、誤字・脱字などあるかも。自己責任で。
具体的な流れ。
- RamDiskを作る。
- RamDiskにSafariのキャッシュをエイリアスでリンクさせる。
- 同じように、Webページ・プレビュー・イメージもリンクさせる。
- 以上を自動的に実行するスクリプトを作成。ログイン時に起動させる。
RamDiskを作る
Automatorで以下のシェルスクリプトを実行。
# RamDiskのサイズ。204800で100MB。
NUMSECTORS=614400
# ドライブの名前。
DEVNAME=RamDisk
# RamDiskを作成。
MYDEV=`hdid -nomount ram://$NUMSECTORS`
# HFS+でフォーマット。
diskutil eraseDisk HFS+ $DEVNAME $MYDEV
うまくマウントされたことを確認したら、スクリプトはアプリケーション化して保存 (仮に『Make-RamDisk』)。
RamDiskにSafariのキャッシュをエイリアスでリンクさせる
まず、Safariのメニューから『キャッシュを空にする』を選択。その後Safariを終了させる。
ターミナルで以下を実行。空にしたキャッシュの名前変更をしている (『~』はホーム・フォルダ)。
$ mv ~/Library/Caches/com.apple.Safari/Cache.db ~/Library/Caches/com.apple.Safari/Cache.db.BACK
次は、空のキャッシュをRamDiskへCache.dbとしてコピーする。
$ cp ~/Library/Caches/com.apple.Safari/Cache.db.BACK /Volumes/RamDisk/Cache.db
そうしたら、RamDiskにコピーしたCache.dbへエイリアスを貼ってあげる。
$ ln -s /Volumes/RamDisk/Cache.db ~/Library/Caches/com.apple.Safari/Cache.db
ここまで終わったら、RamDiskにコピーしたCache.dbのファイルサイズをメモしてから、Safariで適当にWebを見てみる。
ファイルサイズが増えていけば成功しているので、cpとlnで始まるシェルスクリプトをAutomatorなどでアプリケーション化して保存 (仮に『Safari-Cache-RamDisk』)。
Webページ・プレビュー・イメージもリンクさせる
まずは、RamDiskにイメージキャッシュ用のフォルダを作成。
$ mkdir ‘/Volumes/RamDisk/Webpage Previews’
$ mkdir ‘/Volumes/RamDisk/Webpage Previews/Incoming’
既存のキャッシュフォルダを削除して、
$rm -rf ‘~/Library/Caches/com.apple.Safari/Webpage Previews’
作成したRamDisk上のフォルダへエイリアスを貼る。
$ ln -s /Volumes/RamDisk/Webpage Previews/ ~/Library/Caches/com.apple.Safari/Webpage Previews
Safariを起動して適当にWebを見る。RamDiskのWebpage PreviewsフォルダにJPEG画像がわんさか保存されていけば成功。
成功したら、Automatorでmkdirを自動実行するスクリプトを作成してアプリケーション化 (ローカルに貼ったエイリアスは再起動しても維持されるが、RamDiskの内容は全部消えてしまうため。仮に『Safari-WP-mkdir』)。
以上を自動的に実行するスクリプトを作成
それぞれの工程はアプリケーション化してある前提で、そのアプリケーションを順番に起動するスクリプトをApple Scriptで適当に書く。
tell application “Make-RamDisk” to activate
delay 5
tell application “Safari-Cache-RamDisk” to activate
tell application “Safari-WP-mkdir” to activate
delayを入れてあるのは、RamDiskが作成される前にフォルダ作成のスクリプトが実行されてエラーになるのを防ぐ安全策。
10.5と10.6で動作したファイルを添付しておくので、上記で間違っててもこっち見て自分で何とかしてください。
RamDiskSet.zip - Windows SkyDrive
以下も参考に。