比pnpm的更快的模块管理方案,提效竟有6倍?

不难看出,pnpm、yarn等提出的优化策略都是从减少文件I/O出发,加速模块安装速度。但是目前市面的方案或多或少都存在其限制和不足。现在来回想下上节介绍的FUSE,FUSE可以从根本上避免文件I/O问题,而且其灵活的特性可以弥补pnpm现存的不足之处。FUSE的思路让我们可以从更底层的视角出发,尝试缓解安装模块时带来的大量写入时间,最大化增速安装过程。最近找到一个VUE的文档,它将VUE的各个知识点进行了总结,整理成了《Vue 开发必须知道的36个技巧》。内容比较详实,对各个知识点的讲解也十分到位。
摘要由CSDN通过智能技术生成

在大前端世界发展到繁荣时代的今天,前端从业者们不得不面对如今纷繁复杂的模块环境带给研发和维护工作的烦恼:它安装的实在太慢了。在研发效能的大赛道上,依赖管理性能已经成了我们避无可避的绊脚石。

我们关注到蚂蚁集团的优秀同行们提出的tnpm rapid思路和探索,使用底层技术手段,解决上层业务问题,成功从文件系统层面解决前端基建问题。为前端领域的先行者们点赞👍!

我们根据这套方案还原了相对完整的FUSE版模块管理器,并且在团队日常开发中实装测试。本文将分享成果数据并且分析实践中的痛点与难点,给出我们团队的解决方案,希望能对大家有所启发。

也欢迎大家提出用底层技术”破圈“前端基建的想法和建议。

成果先行

我们使用Rust编写了FUSE守护进程和模块下载、解压的模块,使用node实现了上层命令行程序以覆盖script hook等需要npm库支持的情况,并且在团队内的osx的开发环境实装测试。

看一下基于整体思路实现的模块安装程序的性能数据

MacBook Pro (macOS Big Sur)

处理器: 2.8 GHz 四核Intel Core i7

内存: 16 GB 2133 MHz LPDDR3

测试项目: 团队内中台项目 (包含1709个模块、69450个子文件)

网络环境: < 300Mbps

可以看到在包含lock文件的情况下,安装速度有明显的提升。在含有缓存文件的情况,npm由于要处理大量的文件写入,性能表现很低下。对比而看,FUSE的优化效果非常明显,符合预期情况。由于我们的方案没有设计优化lock生成性能,依旧使用npm本身的方案,所以就先不在此列出无lock的情况的性能数据了。

综合结果数据来看,FUSE在模块管理的领域大有可为。尤为重要的是,这种把上层问题使用底层方案解决的做法是非常有突破性的,可以说拓宽了前端基建的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值