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)

相关推荐
代码探秘者2 小时前
【大模型应用】6.RAG 场景下的向量+关键词混合检索
java·开发语言·人工智能·python·spring
羸弱的穷酸书生2 小时前
跟AI学一手之渗透测试智能体
网络·人工智能
CCC:CarCrazeCurator2 小时前
MCP(Model Context Protocol)应用案例解析
人工智能
智算菩萨2 小时前
AGI的定义:基于CHC认知理论的量化评估框架深度解析
论文阅读·人工智能·深度学习·ai·agi
鬓戈2 小时前
大模型Qwen3企业业务数据微调之模型导出
人工智能
@不误正业2 小时前
OpenHarmony集成AI Agent实战:打造鸿蒙智能助理
人工智能·华为·harmonyos
databook2 小时前
当AI学会编程,我们还能做什么
人工智能·程序员·ai编程