ByteNoteByteNote

字节笔记本

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 / .nuxt2-4GB
Rusttarget4-8GB
Node.jsnode_modules/.cache1-2GB
Pythonpycache / .pytest_cache512MB-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 等项目的具体操作方法。

分享: