Help us understand the problem. What is going on with this article?

MacOSX 簡単にブラウザのキャッシュをRamDiskにあてる

以前、TmpDiskを使ったRamDiskの適用方法を投稿したのですが、
最近になって
・Terminal のコマンドから一発でシンプルに作成可能な事
・AutoMatorなんて使わなくても簡単に起動登録できる事
がわかりました。

※実行は自己責任にてお願いします

目的

ブラウザのキャッシュをRamDiskにあてることで、
SSDへのアクセスが減り、
以下のことが期待できます。

  • SSDの寿命が伸びる
  • 動作環境への負荷が減る
  • GoogleChromeのキャッシュを割り当てたら、動作が快適に感じるかも?

とはいえ、どちらも体感は変わらないです。

システムのメモリをディスクとして割り当てる為、
メモリに余裕のある環境が対象となります。

RamDisk を作成する

これは、一行で実現可能でした。
参考サイト

diskutil erasevolume HFS+ ${DISK_NAME} `hdiutil attach -nomount ram://${DISK_SIZE}`

DISK_NAMERAMDisk とかで、わかりやすくて良いと思いますが、
DISK_SIZE は 参考サイトにあるように、以下のようになります。

DISK_SIZE 数値
512MB 1048576
1GB 2097152
2GB 4194304
# 2GBのRAMDiskを作成する
diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://4194304`

起動時設定の登録

再起動後も、自動でRAMDiskが有効になるようにします。

1.シェルスクリプトの作成

以下のようなスクリプトを作成します。
この例では、GoogleChromeのキャッシュをRAMDiskに割り当てています。
*ブラウザのキャッシュフォルダの場所は、バージョンによって変わる可能性があります

setup-mac-ramdisk.command
DISK_SIZE=4194304
DISK_NAME=RAMDisk

# create and mount RAMDisk
diskutil erasevolume HFS+ ${DISK_NAME} `hdiutil attach -nomount ram://${DISK_SIZE}`

# create links to RAMDisk
function symbolic_link(){
  rm -rf "$1"
  rm -rf "$2"
  mkdir -p "$2"
  ln -s "$2" "$1"
}

# Chrome_Cache
SRC=${HOME}/Library/Caches/Google/Chrome
DST=/Volumes/${DISK_NAME}/Caches/Chrome
symbolic_link "${SRC}" "${DST}"

2.ログイン項目に登録

作成したスクリプトには、おそらく権限を与えておく必要があります。
chmod 744 setup-mac-ramdisk.command

System Preferences より、
ユーザーとグループ を選択。

ログイン項目 タブの + ボタンを押して
1. で作成したスクリプトファイル (ここではsetup-mac-ramdisk.command) を選択します。

RamDisk Command.png

そうすると、再起動後は下のようなターミナルが起動されるようになります。
起動時.png

大体すぐに終わる印象ですが、
[プロセスが完了しました] と表示されたら、
RAMDiskの準備は完了しているので、そのターミナルは閉じて大丈夫です。

RAMDisk に割り当てる

対象が GoogleChrome くらいしかなくて、ちょっと残念な気もするので、
スクリーンショットの保存先でも変えてみます。

# スクリーンショットの保存先を、RAMDiskに割り当てる
defaults write com.apple.screencapture location /Volumes/RAMDisk;killall SystemUIServer

このコマンドをTerminalで一度実行すれば、適用されます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした