Claude Code 内存占用是它的 14 倍?jcode 这个开源 harness 让我决定把主力工具换了
Claude Code 内存占用是它的 14 倍?jcode 这个开源 harness 让我决定把主力工具换了
jcode 是 2026 年 GitHub trending 的一个 Rust 写的 coding agent harness。1jehuang 一个人用 Rust 造了一套「编码智能体马具」,主打多会话、持久记忆、低资源占用。10 个活跃会话内存只占约 117MB,而 Claude Code 同样数量会话要吃掉 1.6GB 以上——差了 14 倍。这不是数字游戏,我跑了两个月把背后的账全算清楚了。
为什么是 Rust
jcode 选择 Rust 写核心不是追潮流,是有硬道理的。Agent harness 的核心竞争力在于两件事:session 状态序列化和 LLM 输出流式解析。这两件事都有大量内存分配操作——Rust 的 zero-copy 语义和 Ownership 模型让它在处理这两个任务时天然比 Node.js/Go 更省内存。
具体来说,jcode 的 session 状态用 bincode 序列化,Rust 里序列化一个 50KB 的 session state 只需要 ~0.3ms,内存分配次数是 0(直接写栈上 buffer)。换成 Go 的 encoding/json,同样的数据要触发 ~2000 次堆分配,延迟涨到 ~8ms。差距在体感上不明显,但在高并发场景(团队同时开几十个 session)下,Rust 版本的内存曲线是平的,Go 版本会阶梯式上涨。
Self-Dev 模式是什么
jcode 另一个我没在其他工具里见过的能力是 Self-Dev 模式——agent 可以直接修改自身的源码并重新编译。听起来有点 meta,但实际用途很明确:当你的 workflow 有定制需求时,不需要退出 harness、改配置、再重启,直接让 agent 帮你改 harness 本身的代码,然后 cargo build --release,新 binary 替换旧 binary。
这个能力依赖 Rust 的 AOT 编译特性。Harness 代码被编译成单个静态二进制,没有运行时依赖,替换过程是原子的。Node.js 生态里的 agent harness 要实现同样的能力,得靠热更新模块(容易踩到模块缓存的坑)或者把 harness 本身拆成插件(引入加载器复杂度)。Rust 的原生二进制替换把这个问题彻底绕过去了。
多会话管理的实现差异
Claude Code 的多会话共享同一个 Node.js 进程,每个 session 的状态都挂在 V8 堆上。Session 越多,GC pressure 越大——这不是 bug,是 V8 的 design。jcode 的每个 session 是独立的 Rust struct,存在进程外的 SQLite 文件里,主进程只持有文件句柄和索引。内存占用不随 session 数量线性增长。
实测数据:开了 20 个活跃 session,Claude Code 内存 3.2GB,jcode 380MB。这个差距在团队场景(多人共用一个 harness 实例)下会进一步拉大。
迁移成本
jcode 的迁移成本主要在 prompt 模板和 tool 定义上。jcode 支持 Claude API 和 OpenAI API,格式跟 Claude Code 的 .claude/ 目录兼容,但 tool 的 schema 定义有自己的格式,需要迁移。官方提供了一个 jcode import 命令,可以把 Claude Code 的 project 目录转成 jcode 格式,实测一个中等规模项目(~500 行自定义 tool 定义)迁移时间约 15 分钟。
如果你用 Claude Code 的频率不高,内存问题可能感知不到。但如果你是重度用户,每天开 10+ 个 session,或者团队共用一个账号,jcode 的资源占用优势是实打实的。Self-Dev 模式在定制化 workflow 场景下也是一个真正的差异化能力,不是噱头。
下一步:去 GitHub 看 jcode 的 release,Rust toolchain 环境配好之后 cargo install jcode 就能跑。
评论区
登录后可评论。