Safari 4でキャッシュをオンメモリに保存する方法

自分用のメモで適当に書いたので、誤字・脱字などあるかも。自己責任で。

具体的な流れ。

  1. RamDiskを作る。
  2. RamDiskにSafariのキャッシュをエイリアスでリンクさせる。
  3. 同じように、Webページ・プレビュー・イメージもリンクさせる。
  4. 以上を自動的に実行するスクリプトを作成。ログイン時に起動させる。

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

以下も参考に。

http://heppoko.jpn.ph/?p=920

http://heppoko.jpn.ph/?p=1048