18、【Agent】【OpenCode】源码构建(Bun&node速度对比)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Agent】【OpenCode】源码构建(Bun安装方式)

介绍了 Bun 工具集的安装方式,提到 curl https://.../install | bash 这种命令是现代开源工具中非常常见且标准化的安装方式,然后详细分析了该命令,其管道 | 的前半部分 curl 只是下载一个安装脚本,而不是 Bun 工具集本身,然后第二步 | bash 才是把下载到的脚本内容直接传给 bash 执行,安装脚本主要做三件事:检测系统,下载 Bun 二进制包,解压并配置环境变量,然后提到这种安装方式的风险点,建议可以先查看脚本内容后,再决定是否运行,最后分析了下安装脚本执行完后,几个可预见的变化,下面继续分析

OpenCode

上篇 blog 分析了 Bun 工具集的安装方式,下面再和其他安装方式对比下

方式 命令 优点 缺点
官方安装脚本 `curl ... bash` 块,简单,自动配置 PATH
包管理器 sudo apt install bun 安全,可审计 Ubuntu 官方源暂未收录,且更新会比较慢
手动下载 wget + unzip + chmod 完全可控 需手动配置 PATH
npm 安装 npm install -g bun 传统经典 依赖 Node.js,速度较慢

目前综合来看,推荐官方脚本进行安装

安装成功之后

重启终端,输入

bash 复制代码
bun --version

就可以看到 bun 工具集的安装信息

另外,之前 blog 【Agent】【OpenCode】源码构建(Bun介绍) 说,bun 的速度比 node/npm 快很多(包括启动速度,包安装速度等),下面正好来对比下

首先刚才上面确认了 bun 版本为 1.3.11,再看下 node 版本,为 v18.19.1

先测 node,在终端输入

bash 复制代码
time node -e "console.log('hello')"

可以看到其实际耗时 62ms

再看 bun,终端输入

bash 复制代码
time bun -e "console.log('hello')"

可以看到耗时 8ms,其速度大概是 node 的 8 倍,这种速度优势对小脚本尤其明显,这种性能上的提升有几大核心原因,之前简单提了下,下面详细分析下

首先核心原因之一:bun 用 Zig 语言写的,而不是 C++

  • Node.js :基于 V8(C++)+ libuv(C),启动时要加载大量的动态库 ,另外,JavaScript 引擎,事件循环,文件系统,网络模块等,都是不同团队写的,拼凑在一起,所以启动一个空的 time node -e "console.log('hello')" 也要花 50~100ms
  • Bun :整个运行时用 Zig 语言从头写(作者 Jarred Sumner 自己写的 JS 引擎),零依赖,单二进制文件bun 只有约 30MB,而 Node.js 要搭配 npm,core modules 等),说到底,Node.js 绑定的东西太多,太重载了

核心原因二:Bun 的包管理器是数据库式的设计,而不是单纯文件复制

  • npm / yarn :安装依赖的过程 = 递归下载 tarball → 解压 → 复制文件到 node_modules,每个包都要完整拷贝,即使多个包依赖同一个子包,也会重复存储,此外,这些访问还是 I/O 密集型操作,在机械硬盘上尤其慢
  • Bun :把所有包缓存为一个 SQLiTE 数据库(~/.bun/install.cache),bun install 只写一个符号链接,并更新 JSON lockfile,所有代码在内存中通过共享内存映射直接读取,几乎不碰硬盘

OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Agent】【OpenCode】源码构建(TypeScript&JavaScript)

相关推荐
武子康14 小时前
调查研究-185 CodeGraph 调研:给 AI 编程 Agent 一张代码库地图,少一点反复 grep(2026)
人工智能·openai·claude
沉默王二14 小时前
面试结束后,我反问:“就面个实习至于上这么大强度吗?”面试官:“你对 RAG、Agent、MCP、Skill 理解得很到位,所以要求高一点。”
面试·agent·ai编程
aqi0015 小时前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
怕浪猫15 小时前
第一章:AI Agent概览:开启智能体时代
aigc·agent·ai编程
JouYY16 小时前
简单聊一下Harness层中的人机协同(HITL)
前端框架·llm·agent
leeyi16 小时前
Multi-Agent:让多个 AI 分工协作完成复杂任务
后端·aigc·agent
混沌福王16 小时前
Electron三端统一架构:运行时Adapter、IPC能力边界与分层设计
人工智能·agent·ai编程
说了很好16 小时前
马尔可夫扩散链+损失函数推导,手把手实现原生Diffusion
人工智能
聂二AI落地内参16 小时前
合同抽取别停在 JSON:标准规则和交易日历才是硬仗
人工智能