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
绿色表示明显更快,红色表示明显更慢
从前往后为加权综合评分排序
solid完胜
项目 | 速度最快 |
---|---|
创建行 | 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更快
以上两个问题都说明框架设计比语言更重要,当然,这些差距都是毫秒级的,该用啥用啥
网站:https://krausest.github.io/js-framework-benchmark/2024/table_chrome_123.0.6312.59.html