最新,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 的响应式系统将是最快的!

相关推荐
恋猫de小郭几秒前
你的代理归我了:AI 大模型恶意中间人攻击,钱包都被转走了
前端·人工智能·ai编程
xiaokuangren_28 分钟前
前端css颜色
前端·css
Huanzhi_Lin30 分钟前
关于V8/MajorGC/MinorGC——性能优化
javascript·性能优化·ts·js·v8·新生代·老生代
hoiii1871 小时前
C# 基于 LumiSoft 实现 SIP 客户端方案
前端·c#
anOnion1 小时前
构建无障碍组件之Meter Pattern
前端·html·交互设计
小码哥_常1 小时前
Spring Boot配置diff:解锁配置管理新姿势
前端
小码哥_常1 小时前
告别onActivityResult!Android数据回传的3大痛点与终极解决方案
前端
hhcccchh2 小时前
1.2 CSS 基础选择器、盒模型、flex 布局、grid 布局
前端·css·css3
专吃海绵宝宝菠萝屋的派大星3 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
爱分享的阿Q3 小时前
Rust加WebAssembly前端性能革命实践指南
前端·rust·wasm