Rust一定比Js快?没有虚拟DOM一定比有虚拟DOM快?

291 阅读2分钟

Web框架基准测试环境

  • MacBook Pro 14(32 GB RAM、8/14 核、OSX 14.3.1)

  • Chrome 123.0.6312.59(arm64)

  • solid.js:前端Web框架,语法类似于React,内核类似Vue

    • 没有虚拟DOM
  • dioxus:前端全栈跨平台框架,Rust+WebAssembly,类似于Nextjs

    • 有虚拟DOM,但很少与真实DOM比较差异
    • 所有平台都以Web渲染,WebView
  • leptos:类似于 SolidJS

    • 没有虚拟DOM
  • vue.js:尤大出品,看这篇的都认识

    • 有虚拟DOM
  • angular.ts:前端Web框架,Google开发,开箱即用,Ts友好,国外用的多

    • 有虚拟DOM
  • react.js:Facebook开发,看这篇的都认识

    • 有虚拟DOM
  • yew:前端Web框架,Rust+WebAssembly,专注于SPA

    • 有虚拟DOM

测试结果

绿色表示明显更快,红色表示明显更慢

从前往后为加权综合评分排序

image.png

solid完胜

image.png

image.png

项目速度最快
创建行solid
替换所有行dioxus
部分更新dioxus
选择行solid
交换行leptos
删除行leptos
创建多行solid
将行附加到大表solid
清除行solid

Rust一定比Js快?

  • 从有虚拟DOM比较,Rust+WebAssembly框架dioxus比vue、angular、react都快
  • 从没有虚拟DOM比较,solidjs比Rust+WebAssembly框架leptos更快

没有虚拟DOM就一定更快?

  • 从Js框架的角度看,确实是没有DOM的solid更快
  • 从Rust框架角度看,没有虚拟DOM的leptos,在部分更新和加权综合评分时有虚拟DOM的dioxus更快

以上两个问题都说明框架设计比语言更重要,当然,这些差距都是毫秒级的,该用啥用啥

网站:krausest.github.io/js-framewor…