隨著 Xcode 的版本升級,速度越來越慢,尤其一言不合就“白板”的問題相信大家都會有遇到。
這是非常影響開發效率的事情。如果有可能,那麼我們將 Xcode 的緩存文件放到內存,速度應該快很多。(雖然現在 rmbp 的 ssd 已經十分的快速了,但比起內存,還是差的很遠——對於機械硬盤的老機器來說,提速就會更加明顯了。)
——還記得 Windows 的那個 RamDisk 嗎?其實 Linux 也有,而且不需要第三方的軟件,一條自帶的命令就可以完成了!
我們的目標就是從內存裡劃出一部分空間,把它格式化為硬盤掛載的系統當中,專門用來放緩存!
要注意的地方
既然是內存,那麼關機內容是肯定會丟失的,所以我們僅僅用它來存放可以再生成的緩存,可以再下載的內容也不應該放在裡邊。比如 OS X 裡的 helpd 下載的幫助文件,就不應該放在裡邊。
你的內存總空間是多少,分配的內存硬槃體積就應該相應地改變大小,畢竟將內存劃走了固定的一塊,比如我這裡用的是1GB,那麼我原本的8GB內存就變成了7GB大小。
動手做
打開 OS X 自帶的腳本編輯器 ,新建一個文檔,其它默認,然後在裡邊寫入:
1 2 3 4 5 6 7 8 9 |
do shell script " if ! test -e /Volumes/\"Ramdisk\" ; then diskutil erasevolume APFS \"RamDisk\" `hdiutil attach -nomount ram://2097152` fi mkdir -p /Volumes/Ramdisk/Library/Developer/Xcode mkdir -p /Volumes/Ramdisk/Library/Caches/Google mkdir -p /Volumes/Ramdisk/Library/Caches/com.apple.Safari/fsCachedData " |
- 2048 1MB
- 2097152 1國標
- 4194304 2國標
- 8388608 4國標
然後把它保存成 .應用格式:
雙擊執行就可以自動掛載一個叫做“RamDisk”的硬盤了,這個硬盤裡的內容會在電腦重啟後清空,大小是1GB,如果你把它推出了,那麼裡邊的東西也會丟失,所以務必存放緩存文件。
生成之後,我們就來把其它應用的緩存替換過來,對於 Xcode 來說,你可以在應用裡直接設置,不過我們這裡統一使用目錄替換的方式,好處是一些不支持配置的比如 Safari ,我們也能手動把它的緩存目錄替換到內存中,對應用透明。
這裡我們替換三個應用,首先退出它們:Safari瀏覽器Chrome瀏覽器的Xcode
然後刪除這些應用的緩存目錄:
1 2 3 4 5 |
sudo rm -rf ~/Library/Developer/Xcode/DerivedData sudo rm -rf ~/Library/Caches/com.apple.Safari sudo rm -rf ~/Library/Caches/Google |
這些目錄裡的文件都是可以隨時刪除的,你重新打開就會自動建立,你的數據都不會丟失。
然後根據我們在內存硬盤中建立好的目錄來創建目錄鏈接,就像是 Windows 裡的快捷方式,但比那個好用多了:
1 2 3 4 5 |
ln -s /Volumes/RamDisk/Library/Developer/Xcode ~/Library/Developer/Xcode/DerivedData ln -s /Volumes/RamDisk/Library/Caches/com.apple.Safari ~/Library/Caches/com.apple.Safari ln -s /Volumes/RamDisk/Library/Caches/Google ~/Library/Caches/Google |
這個目錄替換是一次設置永久生效的,所以,我們也應該讓這塊內存硬盤在開機的時候自動掛載,那麼只需要在“系統偏好設置”當中-“用戶與群組“ - ”登陸選項”裡加入之前創建的app文件即可。
刪除與恢復
如果要刪除整個方案,那麼只需要先去下面的目錄把創建的鏈接文件刪除,再去掉那個腳本的啟動項就好了:
1 2 3 4 5 |
sudo rm -rf ~/Library/Developer/Xcode/DerivedData sudo rm -rf ~/Library/Caches/com.apple.Safari sudo rm -rf ~/Library/Caches/Google |
性能與效果
如果你僅僅做一般的 Xcode 開發,那麼 1GB 的空間應該是足夠使用的了,這樣一來 Xcode 的速度會快很多,不再那麼容易就白板了。另外,對於 Chrome 和 Safari 的效果十分的明顯。
如果你像我一樣經常用 Xcode 來回切換多個開發項目並編譯,那麼可能會遇到空間塞滿的情況,這時候你要注意這個“內存硬盤”不會自己釋放空間,所以要手動進去刪除一下 Xcode 生成的緩存文件,然後再編譯。
往好的方面想,即使重新生成緩存文件,速度也還是比固態要快的,還不會降低硬盤的讀寫壽命。
延伸閱讀
本文由 落格博客 原創撰寫:落格博客 » OS X 開啟 RamDisk 來為 Safari 和 Xcode 加速
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/2725.html
這不再起作用,因為圍繞 Safari 的沙盒現在甚至阻止了指向不同卷的符號鏈接,例如 Ramdisk.
一些日本人創建了一個腳本,將 Ramdisk 直接安裝在 Cache 的文件夾中以使其工作.
https://sakura.lazycat.info/archives/1018.html
謝謝樓上的大佬.
您不能打開應用程序“disk.app”,因為此類型的 Mac 不支持該應用程序。
塞拉利昂的MacOS 10.12.4
選擇保存的類型是應用程序,不能保存了再改名。
請問一下, 照著做可以產生ramdisk及瀏覽器用的快取資料夾, 雖然刪除了硬盤中的快取資料夾, 但是實際開啟瀏覽器後, 卻是硬盤與Ramdisk 都同時寫入一樣的資料, 硬盤等於還是被當做快取寫入, 為何不是僅ramdisk 有資料才對?
MACOS 10.12.4
你不能打開應用程序“RamDisk.app”,因為它不支持這種類型的Mac.
你是怎麼做的,我也是 10.12.4,沒問題。保存的時候選擇為應用程序,不能直接改名。