IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    OS X 开启 RamDisk 来为 Safari 和 Xcode 加速

    R0uter发表于 2017-04-27 09:49:58
    love 0

    去落格博客阅读完整排版的OS X 开启 RamDisk 来为 Safari 和 Xcode 加速

    最近更新:27th 四月, 2017

    随着 Xcode 的版本升级,速度越来越慢,尤其一言不合就“白板”的问题相信大家都会有遇到。

    Xcode 经常性丢失代码高亮,俗称“白板”

    这是非常影响开发效率的事情。如果有可能,那么我们将 Xcode 的缓存文件放到内存,速度应该快很多。(虽然现在 rmbp 的 ssd 已经十分的快速了,但比起内存,还是差的很远——对于机械硬盘的老机器来说,提速就会更加明显了。)

    ——还记得 Windows 的那个 RamDisk 吗?其实 Linux 也有,而且不需要第三方的软件,一条自带的命令就可以完成了!

    我们的目标就是从内存里划出一部分空间,把它格式化为硬盘挂载的系统当中,专门用来放缓存!

    要注意的地方

    既然是内存,那么关机内容是肯定会丢失的,所以我们仅仅用它来存放可以再生成的缓存,可以再下载的内容也不应该放在里边。比如 OS X 里的 helpd 下载的帮助文件,就不应该放在里边。

    你的内存总空间是多少,分配的内存硬盘体积就应该相应地改变大小,毕竟将内存划走了固定的一块,比如我这里用的是1GB,那么我原本的8GB内存就变成了7GB大小。

    动手做

    打开 OS X 自带的脚本编辑器 ,新建一个文档,其它默认,然后在里边写入:

    do shell script "
    
    if ! test -e /Volumes/\"Ramdisk\" ; then
    
    diskutil erasevolume HFS+ \"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
    
    "

    然后把它保存成 

    .app
     格式:

    把脚本保存成一个应用

    双击执行就可以自动挂载一个叫做“RamDisk”的硬盘了,这个硬盘里的内容会在电脑重启后清空,大小是1GB,如果你把它推出了,那么里边的东西也会丢失,所以务必存放缓存文件。

    生成之后,我们就来把其它应用的缓存替换过来,对于 Xcode 来说,你可以在应用里直接设置,不过我们这里统一使用目录替换的方式,好处是一些不支持配置的比如 Safari ,我们也能手动把它的缓存目录替换到内存中,对应用透明。

    这里我们替换三个应用,首先退出它们:Safari Chrome Xcode

    然后删除这些应用的缓存目录:

    sudo rm -rf ~/Library/Developer/Xcode/DerivedData
    
    sudo rm -rf ~/Library/Caches/com.apple.Safari
    
    sudo rm -rf ~/Library/Caches/Google

    这些目录里的文件都是可以随时删除的,你重新打开就会自动建立,你的数据都不会丢失。

    然后根据我们在内存硬盘中建立好的目录来创建目录链接,就像是 Windows 里的快捷方式,但比那个好用多了:

    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文件即可。

    删除与恢复

    如果要删除整个方案,那么只需要先去下面的目录把创建的链接文件删除,再去掉那个脚本的启动项就好了:

    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 生成的缓存文件,然后再编译。

    往好的方面想,即使重新生成缓存文件,速度也还是比固态要快的,还不会降低硬盘的读写寿命。

     

    延伸阅读

    如何让 Xcode 在读写上提速100倍?

    Mac OS X 开启原生自带虚拟内存盘(Ramdisk)

    OS X 开启 RamDisk 来为 Safari 和 Xcode 加速,首发于落格博客。

    其他推荐:
    1. 让 Xcode 也用上 Solarized Dark 颜色主题
    2. 如何在Mac上正确删除Time Machine数据库
    3. App Store 里的 Swift 2 App
    4. 在 OS X 上 避免 DNS 泄露
    5. 使用开源版本的 Swift



沪ICP备19023445号-2号
友情链接