资讯动态

安装速度快2倍是什么概念?aube vs pnpm、Bun性能基准测试全解析

发布时间:2026/10/8 18:30:21 来源:尧图企业网站定制
安装速度快2倍是什么概念aube vs pnpm、Bun性能基准测试全解析【免费下载链接】aubeA fast Node.js package manager项目地址: https://gitcode.com/gh_mirrors/au/aubeaube是一款用 Rust 编写的快速 Node.js 包管理器package manager主打依赖自动安装与跨项目复用。它随仓库附带了一套完整、可复现的性能基准测试在与 pnpm、Bun、npm、Yarn 的同机对比中aube 的热缓存全新安装约为 pnpm 的2 倍速、约为 Bun 的2 倍速重复执行测试命令时甚至可快 4 倍以上。这篇文章带你逐场景拆解这些数字是怎么测出来的、又意味着什么。基准测试方法数字是怎么测出来的先看清楚测试条件数字才有可比性。aube 的基准测试框架位于 benchmarks/ 目录核心文件包括测试脚本benchmarks/bench.sh原始数据benchmarks/results.json测试项目模板benchmarks/fixture.package.json几个关键设定项目说明️ 测试机Ubuntu 24.04、Intel Core Ultra 5 3258 核 / 16GB 测试规模真实世界中等规模项目约 1400 个包⏱️ 计时工具每轮随机打乱各包管理器顺序、交错采样取中位数避免某台机器偶发卡顿影响结论 网络本地 hermetic 私有 registry限速 500 Mbit/s 50ms 延迟排除真实网络波动 两种缓存状态warm热清掉node_modules但保留缓存仓库cold冷连缓存仓库一起清空各版本aube 2.6.1、pnpm 12.8.1、Bun 1.4.2、npm 11.9.0、Yarn 4.18.1、Deno 2.9.7Node 24.14.0。四大真实场景逐一拆解场景一热缓存全新安装最常用的场景这是开发者最典型的场景锁文件已提交node_modules被删掉重新安装。工具耗时相对 aubeaube336 ms1xaube关闭 GVS461 ms1.4xBun791 ms2.4xpnpm682 ms2.0xDeno526 ms1.6xnpm5620 ms16.7xYarn5279 ms15.7x336 毫秒装完 1400 个包是什么概念大约就是你眨两次眼的时间而 npm 需要将近 6 秒。场景二冷缓存全新安装CI 首跑/全新克隆仓库缓存仓库也被清空需要完整经历拉取 registry 元数据 → 下载 tarball → 写入仓库 → 链接/物化。工具耗时相对 aubeaube关闭 GVS1344 ms1xaube1430 ms1.06xBun1672 ms1.25xDeno1789 ms1.33xnpm8241 ms6.1xYarn9670 ms7.2xpnpm21433 ms16x冷启动下 aube 仍在 1.5 秒内完成是 pnpm 的15 倍速、Bun 的约 1.2 倍速。注意 aube 关闭全局虚拟仓库GVS的一行反而略快——GVS 是 aube 本地安装默认启用的跨项目共享目录树特性属于更快安装之外的额外收益。场景三git pull 后更新依赖Renovate/Dependabot 式变更模拟一次典型自动升级合并10 个直接依赖升版本Babel、MUI、ESLint、TypeScript、webpack 等 新增 2 个。测的是找出变化并重新链接而非下载。工具耗时相对 aubeaube191 ms1xBun160 ms0.8xDeno252 ms1.3xpnpm374 ms2.0xnpm2227 ms11.7xYarn3244 ms17x这个场景 Bun 略占上风160msaube 与 pnpm 的差距拉大到 2 倍——增量更新恰恰是每天发生最多的操作。场景四已装好的项目直接跑 install test最高频操作依赖已经装好重复执行按需安装并跑测试的命令。这测的是短路能力能否判断什么都没变直接跳过安装。工具耗时相对 aubeaube25 ms1xBun55 ms2.2xDeno80 ms3.2xpnpm105 ms4.2xnpm1176 ms47xYarn2456 ms98xaube 依赖安装状态文件install-state file的新鲜度直接跳过安装25 毫秒几乎无感。这就是重复测试命令最多快 4 倍于 pnpm的出处。为什么 aube 能快这么多速度来源可以概括为三点全部来自 README 的说明Rust 实现解析、链接、状态判断都在原生内存中完成没有 Node 层面的运行时开销内容寻址仓库CAS同一文件全局只存一份冷安装时重复包直接命中全局虚拟仓库GVS跨项目复用已物化的包目录树减少重复的符号链接与磁盘写入——pnpm 有类似机制但默认关闭基准测试按用户开箱即用的默认配置对比。如何快速上手 aube在已有项目里试用只需两步无需删除或转换现有锁文件mise use -g aube # 安装 aube cd your-project aube install # 直接复用现有 pnpm/npm/Yarn/Bun 锁文件aube 原生兼容的锁文件格式现有锁文件支持版本pnpm-lock.yamlv9pnpm 9–11 生成package-lock.jsonv2 / v3npm-shrinkwrap.jsonshrinkwrapyarn.lockClassic v1 / Berry v2bun.lock文本格式 v1–v3日常开发中aubr build会先检查依赖是否新鲜、缺失则自动安装再执行脚本——把安装这件事彻底融入工作流。更多命令见 README.md。结论与数据出处场景aube 相对 pnpmaube 相对 Bun热缓存安装2.0x2.4x冷缓存安装15x1.25xpull 后更新2.0x0.8xBun 略胜重复 installtest4.2x2.2x公平地说这些数字描述的是特定 fixture、工具版本、硬件和缓存状态下的结果不代表任何项目都必然最快测试脚本也是无副作用的空操作衡量的是命令开销而非真实测试耗时。数据全部来自提交在仓库中的原始 JSON benchmarks/results.json由 benchmarks/generate-results.js 生成文档图表通过 docs/benchmarks.data.ts 在构建时读取页面说明见 docs/benchmarks.md。你也可以在自己的机器上运行mise run bench:bump完整复现。对每天要跑几十次 install 的前端/Node 开发者来说把 6 秒缩短到 0.3 秒、把 100 毫秒的重复检查缩短到 25 毫秒一年下来省下的等待时间是实打实的——这可能就是快 2 倍最真实的意义。【免费下载链接】aubeA fast Node.js package manager项目地址: https://gitcode.com/gh_mirrors/au/aube创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑