最新,Vue 性能提升 400%

最近,Vue 团队核心成员 Johnson Chu 开源一个全新的信号库:alien-signals,这是一个基于 Vue 3.4 响应式系统重写的研究型信号库,可以使 Vue 3.4 的响应式系统性能提升 400%。目前,alien-signals 是所有信号库中最快的实现。

优势

alien-signals 的优势如下:

  • 更低的内存使用:在大量创建 ref、computed 和 effect 实例时,alien-signals 的内存使用量减少了约 13%(从 2.3MB 降低到 2.0MB)。
  • 更高的性能:在各种性能测试中,alien-signals 均展现出了更为出色的性能。特别是在更新 ref 后读取大量 computed 属性的场景中,Vue 3.5 存在明显的性能瓶颈(这一特点在拉模型响应式系统中较为常见,具体可在 https://github.com/transitive-bullshit/js-reactivity-benchmark 中复现)。而 alien-signals 通过优化,成功解决了这一问题,实现了超过 30 倍的性能提升,且性能提升幅度与规模成正比。
  • 更好的代码抽象:先前的调度逻辑与外部实现(如 Dep 清理、调试事件处理、递归 effect 处理等)存在耦合问题。而在当前实现中,alien-signals 已成功消除了这些耦合,使得代码结构更为清晰,可维护性更强。

性能

实验结果表明,在既定约束下,即使不使用复杂的调度策略,信号库也能展现出优秀的性能。具体而言,在 0.2 版本中,alien-signals的整体性能表现突出:其性能约为 Vue 3.4 响应式系统的 400%;在常规场景下,相较于 Vue 3.5 响应式系统,其性能提升了 180%;而在大规模应用场景下,其性能更是 Vue 3.5 响应式系统的 6500%。

而在 alien-signals 0.3.0 中,其性能较 0.2.x 又提升了 5~15%。

alien-signals 设定了以下约束以确保响应式系统的高性能实现:

  • 不使用动态对象字段
  • 不使用 Array/Set/Map
  • 不使用递归调用
  • 类属性必须少于10个

状态

目前,alien-signals 已经用于 Vue Language 工具:

Johnson Chu 已经在 Vue 仓库中提了 PR,计划将 https://github.com/stackblitz/alien-signals/blob/master/src/system.ts 的代码移植到 https://github.com/vuejs/core/blob/main/packages/reactivity/src/effect.ts 中,以利用 alien-signals 的性能优势实现 Vue 响应式系统的性能提升。也许这些将会在 Vue 3.6 中实现?

相信未来 Vue 的响应式系统将是最快的!

相关推荐
_AaronWong18 小时前
Electron 实现仿豆包划词取词功能:从 AI 生成到落地踩坑记
前端·javascript·vue.js
cxxcode18 小时前
I/O 多路复用:从浏览器到 Linux 内核
前端
用户54330814419418 小时前
AI 时代,前端逆向的门槛已经低到离谱 — 以 Upwork 为例
前端
JarvanMo18 小时前
Flutter 版本的 material_ui 已经上架 pub.dev 啦!快来抢先体验吧。
前端
JohnYan18 小时前
工作笔记-CodeBuddy应用探索
javascript·ai编程·aiops
恋猫de小郭19 小时前
AI 可以让 WIFI 实现监控室内人体位置和姿态,无需摄像头?
前端·人工智能·ai编程
哀木19 小时前
给自己整一个 claude code,解锁编程新姿势
前端
程序员鱼皮19 小时前
GitHub 关注突破 2w,我总结了 10 个涨星涨粉技巧!
前端·后端·github
UrbanJazzerati19 小时前
Vue3 父子组件通信完全指南
前端·面试
是一碗螺丝粉19 小时前
5分钟上手LangChain.js:用DeepSeek给你的App加上AI能力
前端·人工智能·langchain