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


※※※※※
**20191115 よりシンプルで起動登録も簡単な方法が見つかったので、別記事を作成しました。
[リンク](https://qiita.com/yassy/items/1d94779f594491b62ee9)**
※※※※※


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

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

- SSDの寿命が伸びる
- 動作環境への負荷が減る

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

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


# RamDisk を作成する

1.[TmpDisk](https://github.com/imothee/tmpdisk)をインストールします
https://github.com/imothee/tmpdisk/releases/download/v1.2.1/TmpDisk-1.2.1.dmg
※いつからか、GitHubで公開されるようになっていました

2.インストールしたアプリを実行し、RamDiskを作成します
・<font color=red>**AutoCreate**</font>の項目にチェックを入れます(重要)
・**AdvancedMode**にチェックを入れると、DiskSizeが自由に設定できるようになります
・ここではDiskNameを RamDisk としてみました
・体感ですが、512MBもあればブラウジングだけなら不自由しないです

![スクリーンショット 2016-06-11 17.54.17.png](https://qiita-image-store.s3.amazonaws.com/0/29099/b9156daf-8545-5160-220b-dd7a674aa025.png)

このようにマウントされます (/Volumes/RamDisk)
![スクリーンショット 2016-06-11 18.13.51.png](https://qiita-image-store.s3.amazonaws.com/0/29099/93f6137c-5ecd-c206-4a0d-3ce058b8d516.png)


3.メニューバーのアイコンから、起動時に実行されるように設定します
・**Always Start on Login**にチェックを入れます

![スクリーンショット 2016-06-11 18.00.01.png](https://qiita-image-store.s3.amazonaws.com/0/29099/d990ec2a-d61b-4aa0-73e1-cb853650c8ba.png)
![スクリーンショット 2016-06-11 17.35.31.png](https://qiita-image-store.s3.amazonaws.com/0/29099/b5b59c7e-19a7-f4fb-dc3d-87d9ec5f94cd.png)


これで、RamDiskの準備ができました。

# ブラウザのキャッシュフォルダを、RamDisk内にあてる

ここでは、ChromeとSafariを対象としてみます。

現在、以下のようにあるそれぞれのキャッシュフォルダを、
RamDisk内のフォルダへ割り当ててみます。

|ブラウザ|デフォルトのキャッシュフォルダ|割り当てるキャッシュフォルダ|
|:-:|:-:|:-:|
|Chrome|~/Library/Caches/Google/Chrome/Default/Cache/|/Volumes/RamDisk/Caches/Chrome|
|Safari|~/Library/Caches/com.apple.Safari|/Volumes/RamDisk/Caches/Safari|
※ブラウザのキャッシュフォルダの場所は、バージョンによって変わる可能性があります


色々やり方があるかもしれませんが、
ここでは下記のシェルを使ってシンボリックリンクを作成します。

```TmpDisk-Setup.sh
DISK_NAME=RamDisk

# TmpDisk起動完了までの待機
while [ ! -e /Volumes/${DISK_NAME} ]
do
  sleep 1
done

function symbolic_link(){
  rm -rf "$1"
  rm -rf "$2"
  mkdir -p "$2"
  ln -s "$2" "$1"
}


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

# Safari_Cache
SRC=${HOME}/Library/Caches/com.apple.Safari
DST=/Volumes/${DISK_NAME}/Caches/Safari
symbolic_link "${SRC}" "${DST}"
```

シェル実行後、Chromeを立ち上げて
このようになっていれば成功です。
![スクリーンショット 2016-06-11 19.08.55.png](https://qiita-image-store.s3.amazonaws.com/0/29099/704622a6-e19f-8078-0768-344015fdd8fa.png)

Safariも同様です。
![スクリーンショット 2016-06-11 19.17.38.png](https://qiita-image-store.s3.amazonaws.com/0/29099/788081a1-71bb-4fc3-e5a7-4fd049b9ddc1.png)


# 再起動後に備えて、ログイン項目に登録

再起動後には、TmpDiskによってRamDiskが再作成されても、
シンボリックリンクが解除されてしまっています。

### その為、まずはAutomatorを使いログイン直後にシェルを実行するアプリを作成します。


1.Automatorを起動し、アプリケーションを選択します
![スクリーンショット 2016-06-11 19.20.06.png](https://qiita-image-store.s3.amazonaws.com/0/29099/ab2e2255-e3d2-cbd9-dbc4-29f64e8fea28.png)

2.シェルスクリプトを実行　を選択します
![スクリーンショット 2016-06-11 19.20.30.png](https://qiita-image-store.s3.amazonaws.com/0/29099/d98aba8d-2061-731a-3799-36b610b6ea55.png)

3.TmpDisk-Setup.shの内容を書き込み、保存します
![スクリーンショット 2016-06-11 19.24.30.png](https://qiita-image-store.s3.amazonaws.com/0/29099/57ff7f5f-8df5-8d23-2d95-f13b1af2ee4a.png)

メニューバーから
![スクリーンショット 2016-06-11 19.24.46.png](https://qiita-image-store.s3.amazonaws.com/0/29099/79fba5d4-0b0d-849e-5738-6ccc94ff9665.png)

任意の名前で保存
![スクリーンショット 2016-06-11 19.25.22.png](https://qiita-image-store.s3.amazonaws.com/0/29099/e70d0772-53c8-c106-2df5-14b0a53a982c.png)

ロボット的なアイコンのファイルになっていたら成功
![スクリーンショット 2016-06-11 19.29.47.png](https://qiita-image-store.s3.amazonaws.com/0/29099/6d94fc28-5893-5f41-e1c8-6275664efc27.png)


### System環境設定からログイン項目を登録します

1.System環境設定を開き、ユーザとグループを選択する
![スクリーンショット 2016-06-11 19.32.33.png](https://qiita-image-store.s3.amazonaws.com/0/29099/51b75a2e-5752-a832-9f57-f44e4c022a50.png)

2.ログイン項目にある + を押して、先ほど出力したアプリを選択します
![スクリーンショット 2016-06-11 19.32.51.png](https://qiita-image-store.s3.amazonaws.com/0/29099/cecf883f-cfb3-51d4-4098-07d0525e7bdc.png)

### 確認

再起動してから Chrome や Safari を起動し、
RamDisk内のキャッシュフォルダが使用されていれば成功です。

※※※※※
**20191115 よりシンプルで起動登録も簡単な方法が見つかったので、別記事を作成しました。
[リンク](https://qiita.com/yassy/items/1d94779f594491b62ee9)**
※※※※※