字
字节笔记本
2026年4月23日
我把项目的缓存目录挂到了内存里
API中转
¥120
我把项目的缓存目录挂到了内存里
事情是这样的。
我最近不是在做各种 AI 项目嘛,什么 Next.js、Rust、Node.js 的。写一会儿就要跑构建,然后那个等待的时间啊......真的是折磨人。
尤其是 Rust 项目,那个 target 目录,动不动就吃我几十个 G。每次 cargo build,我都能去倒杯水回来。
直到我发现了这个优化方式:把项目缓存目录挂到内存里。
什么是 tmpfs
tmpfs 是 Linux 的一个内存文件系统。简单说就是把一部分 RAM 当硬盘用。
优点:
- 速度飞快:内存读写比 SSD 快 10 倍以上
- 保护 SSD:减少写入,延长硬盘寿命
- 重启自动清空:不用手动清理垃圾
缺点:
- 重启后缓存消失(但对于开发来说,这反而是优点)
- 会占用内存
哪些项目适合挂
根据我自己的测试经验:
| 项目类型 | 推荐挂载目录 | 建议大小 |
|---|---|---|
| Next.js / Nuxt | .next / .nuxt | 2-4GB |
| Rust | target | 4-8GB |
| Node.js | node_modules/.cache | 1-2GB |
| Python | pycache / .pytest_cache | 512MB-1GB |
最简单的做法
别挂整个 ~/.cache,直接把项目里那个最大的缓存目录挂进去。
比如 Next.js 项目:
bash
mkdir -p .next
sudo mount -t tmpfs -o size=2G,mode=0777,uid=$(id -u),gid=$(id -g) tmpfs .next然后跑构建——我操,那速度,直接从自行车变成高铁。
更聪明的做法
每次手动挂太麻烦。我一般在项目根目录放一个脚本:
bash
#!/bin/bash
CACHE_DIR=".next"
SIZE="2G"
if mount | grep -q "$(pwd)/$CACHE_DIR"; then
echo "已经是 tmpfs 了"
exit 0
fi
mkdir -p "$CACHE_DIR"
sudo mount -t tmpfs -o size=$SIZE,mode=0777,uid=$(id -u),gid=$(id -g) tmpfs "$CACHE_DIR"
echo "搞定!"以后每次进项目就跑一下,速度立刻回来。
最简单的方式
其实还有更偷懒的玩法:直接做个软链接指向 /tmp。
bash
rm -rf .next
ln -s /tmp/my-project-next .next
mkdir -p /tmp/my-project-next/tmp 通常本身就是 tmpfs,一步到位。
我的感受
讲真的,这个优化改变了我写代码的节奏。
以前每次改完代码等构建,那种焦虑感。现在完全不存在了。挂到内存里之后,构建几乎是即时的。
如果你也是天天跟构建打交道的人,这个优化真的值得一试。内存不值钱,但你的时间值钱。
本文介绍如何将项目缓存目录挂载为 tmpfs,提升构建速度,包括 Next.js、Rust、Node.js 等项目的具体操作方法。
分享: