清理磁盘时的灵光一闪:我用 Vibe Coding 撸了个 RAM 磁盘管理工具

0 阅读4分钟

起因:一场磁盘空间保卫战

周末整理电脑,打开"关于本机"一看,我的 256G SSD 只剩 20G 了!

image.png

开始排查大文件,发现一个惊人的事实:

du -sh ~/.npm ~/.cache ~/.cargo ~/.cocoapods
# 2.3G    ~/.npm
# 4.1G    ~/.cache
# 1.8G    ~/.cargo/registry
# 2.1G    ~/.cocoapods/repos

这些开发工具的缓存加起来竟然有 10G+!而且最气人的是:

  • 这些缓存经常过期,但又不敢随便删
  • npm install 时读写这些缓存,SSD 在疯狂掉寿命
  • 每次换电脑都要重新下载,缓存根本没卵用

灵感:如果把缓存放到内存里?

RAM 磁盘的概念突然蹦出来 —— 把一部分内存挂载成一个虚拟磁盘。

优点简直完美:

  • 内存读写速度是 SSD 的 10-100 倍
  • 重启自动清空,永远不会有过期缓存
  • 不占用 SSD 空间,延长硬盘寿命

architecture.png

但问题来了:每次开机都要手动创建 RAM 磁盘、手动建立符号链接,太麻烦了!

Vibe Coding:说干就干

既然没有现成的工具,那就自己写一个!

作为一个"小白"程序员,我决定用 Vibe Coding 的方式 —— 不纠结架构,不追求完美,先让东西跑起来再说。

技术选型

  • 语言:Swift + SwiftUI(原生 macOS,体验最好)
  • 开发时间:一个下午(大约 4 小时)
  • 开发工具:Claude Code + Xcode

开发过程

第一步:核心功能验证(30分钟)

先用命令行验证 RAM 网盘的创建:

# 创建 4GB 的 RAM 磁盘
diskutil erasevolume HFS+ RAMCache `hdiutil attach -nomount ram://8388608`

# 建立符号链接
ln -s /Volumes/RAMCache/npm ~/.npm

验证通过,技术方案可行!

第二步:UI 界面(1小时)

用 SwiftUI 快速搭建三个标签页:

  • Status:显示 RAM 磁盘状态和创建按钮
  • Caches:缓存目录管理,一键开关
  • Settings:开机自启等设置

状态面板转存失败,建议直接上传图片文件

image.png 第三步:核心逻辑(1.5小时)

  • RAM 磁盘的创建和卸载
  • 符号链接的建立和恢复
  • 开机自启(LaunchAgent)

第四步:打磨细节(1小时)

  • 添加菜单栏图标
  • 实时显示磁盘使用量
  • 处理各种边界情况

缓存管理转存失败,建议直接上传图片文件

image.png

最终效果

设置界面转存失败,建议直接上传图片文件

image.png 使用体验:

速度对比转存失败,建议直接上传图片文件

image.png

  • npm install 从 30 秒降到 5 秒左右
  • 重启后缓存自动清空,系统更干净
  • SSD 省下了 10G+ 空间

趣味插图转存失败,建议直接上传图片文件

image.png

工作原理(小白也能懂)

┌──────────────────────────────────────────┐
│       /Volumes/RAMCache(RAM 磁盘)       │
│  ├── npm/                                │
│  ├── cache/                              │
│  ├── cargo-registry/                     │
│  └── go-build/                           │
└──────────────────────────────────────────┘
                    ▲
                    │  符号链接
                    │
┌──────────────────────────────────────────┐
│  ~/.npm        → /Volumes/RAMCache/npm   │
│  ~/.cache      → /Volumes/RAMCache/cache │
│  ~/.cargo/registry → .../cargo-registry  │
└──────────────────────────────────────────┘

简单来说:

  1. 开机时自动创建一个 RAM 磁盘(比如 4GB)
  2. ~/.npm 等缓存目录"链接"到 RAM 磁盘里
  3. 开发工具读写缓存时,实际是在操作内存
  4. 重启后内存清空,一切重头开始

支持哪些缓存?

缓存路径说明
npm~/.npmNode.js 包缓存
通用缓存~/.cacheXDG 缓存目录
uv~/.cache/uvPython uv 包管理器
Cargo~/.cargo/registryRust crate 仓库
CocoaPods~/.cocoapods/reposiOS 依赖规格
Go Build~/Library/Caches/go-buildGo 编译缓存
pnpm~/.pnpm-storepnpm 存储目录
Dart Pub~/.pub-cacheDart/Flutter 包缓存

如何使用?

方式一:直接下载

GitHub Releases 下载 DMG 安装。

方式二:自己构建

git clone https://github.com/talkcozy/RAMCacheManager.git
cd RAMCacheManager
brew install xcodegen
xcodegen generate
xcodebuild -project RAMCacheManager.xcodeproj -scheme RAMCacheManager -configuration Release build

系统要求

  • macOS 14.0(Sonoma)或更高版本
  • Apple Silicon(arm64)

写在最后

这个项目从想法到完成只花了一个下午,代码也不到 1000 行。但它解决了我真实的痛点,让我的开发体验更好了。

Vibe Coding 的精髓就是:

不要过度设计,不要追求完美,先解决眼前的问题。

如果你的 Mac 也被各种开发缓存塞满了,不妨试试这个小工具。有问题欢迎在评论区留言,或者去 GitHub 提 Issue!


项目地址: github.com/talkcozy/RA…

如果觉得有用,欢迎 Star ⭐