跳至主要内容

性能

官方基准

以下两个图表显示了在过去一周的每一天中,在所有主要包管理器上,在 GitHub Action 运行器上运行完整安装所需的时间,平均值取自一天中执行的多次运行,而每次运行本身的平均值取自多次安装。

第一个图表显示了 Next.js 项目的安装时间,第二个图表显示了 Gatsby 项目的安装时间。两条实线都代表 Yarn 的 master 分支,浅蓝色线是 Yarn PnP 安装,深蓝色线是 Yarn 在 nodeLinker: node-modules 下运行。虚线蓝线代表 Yarn Classic。

提示

这只是我们每隔三小时在每个工具的最新版本上运行的基准测试的一个小部分。要查看这些测试的所有变体,请查阅我们专门的 Datadog 仪表盘

不要从拉取请求中进行基准测试

或者至少在这样做时使用私有存储库。

当 Yarn 检测到运行环境是公共存储库上的拉取请求时,它会启用各种安全设置。除其他设置外(请参阅 强化模式),它默认从远程注册表中提取所有元数据以确认它们与锁定文件中的一致。这会使安装速度变慢,但对于保护我们的用户免受 锁定文件中毒 非常重要。

关于递减收益

在讨论包管理器性能时,请记住这些数字是相对的。虽然主要版本和次要版本通常会带来安装速度方面的改进,但节省几秒钟并不会产生重大影响 - 尤其是当这些时间在很大程度上取决于你的确切环境(CI 平台、CPU 数量、网络速度、...)和配置(缓存设置)时。

无论你计划使用 Yarn 还是其他包管理器,请确保不仅根据原始速度做出决定,还要根据更结构化的原因:它们各自实现的功能、它们各自提供的设置、它们各自设定的优先级。