主要观点:
js-framework-benchmark是开源成功案例,推动了整个 JavaScript 生态系统发展,但也有其优缺点。- 应庆祝其成就同时指出其怪癖和局限性。
- 该基准主要测试客户端渲染 10k 表格行等操作,存在诸如不测量 SSR 和水化、仅一个大组件、被框架作者优化、10k 行数据场景特殊、仅针对 Chrome、仅测量重渲染等局限性。
- 它类似于旧的 DBMon 基准,测量频繁重渲染的客户端场景,不能代表真实用户数据和所有性能定义。
- 我们应编写其他基准来覆盖
js-framework-benchmark未涉及的场景,框架作者也应教育消费者关于基准的作用和局限性。
关键信息:
js-framework-benchmark由 Stefan Krause 维护,一人承担主要维护工作。- 核心测试是渲染最多 10k 行的
<table>并进行增删改等操作。 - 不测量 SSR 和水化,多数框架测试一个大组件,框架作者会优化以展示最佳性能,10k 行数据场景特殊,仅针对 Chrome,仅测量重渲染,忽略首次渲染成本等。
- 有多个浏览器基准,应创建更多 JavaScript 框架基准。
重要细节:
- Stefan Krause为
js-framework-benchmark付出大量努力,如解决 Chrome 124 问题。 - 不同框架在基准测试中的优化方式不同,如 Svelte 改变 HTML 风格,Vue 引入
v-memo指令,事件委托在不同框架中的处理方式等。 - 10k 行数据场景在多数 web 应用中不常见,会夸大某些优化的效果。
- 基准测试依赖 Chrome 高级 API 且仅测量客户端渲染,不测量首次渲染成本等。
- 其他浏览器基准如 Speedometer、MotionMark 等各有侧重,应创建更多 JavaScript 框架基准。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。