mattintosh note

どこかのエンジニアモドキの備忘録

macOSでChromeのキャッシュ先にRAMディスクを使用する

昔書いたかもしれませんが、Google Chrome のキャッシュ先を本体のストレージではなく RAM ディスクにする方法です。

ターミナルで実行しても同じことは出来ますが、RAM ディスクは OS を再起動すると再設定が必要になるため再起動の度に同じことをしなくてはなりません。これについては macOS に標準搭載されている Automator でアプリケーション化することで自動化することが出来ます。

Automator を起動したら新規アプリケーションの作成を開始して、アクション > ユーティリティ > シェルスクリプトを実行 をドラッグしてワークフローに追加します。

Automator
Automator

スクリプトを書き込みます。使用するシェルに関してはデフォルトの /bin/bash でかまいません。

SIZE で RAM ディスクの容量を指定することが出来ます。単位は MB です。本体の物理メモリサイズと相談して決めます。Google Chrome のプロファイルを分けている場合は CACHE_PREFIX がそれぞれ異なりますので状態に合わせて変更する必要があります。

/bin/ksh

set -e
set -u

SIZE=512
CACHE_PREFIX=${HOME}/Library/Caches/Google/Chrome/Default

rm -rf   "${CACHE_PREFIX}"
mkdir -p "${CACHE_PREFIX}"
device=$(hdiutil attach -nomount ram://$((SIZE * 1024 * 2 ** 10 / 512)))
newfs_hfs -v "Chrome Cache" ${device}
mount -t hfs ${device} "${CACHE_PREFIX}"

アプリケーションを保存したら システム環境設定 > ユーザとグループ > ログイン項目 に追加します。すぐに適用する場合はアプリケーションを直接実行することで適用出来ます。ただし、上記のスクリプトにはディスクの取り外し操作が含まれていないため再実行する場合はディスクの取り外しを行ってから再実行する必要があります(通常使用する分には OS 起動時の初回のみ実行されるのでディスクの取り外しを行う必要はありません)。