js-framework-benchmark 的伟大与局限性

主要观点:

  • js-framework-benchmark是开源成功案例,推动了整个 JavaScript 生态系统发展,但也有其优缺点。
  • 应庆祝其成就同时指出其怪癖和局限性。
  • 该基准主要测试客户端渲染 10k 表格行等操作,存在诸如不测量 SSR 和水化、仅一个大组件、被框架作者优化、10k 行数据场景特殊、仅针对 Chrome、仅测量重渲染等局限性。
  • 它类似于旧的 DBMon 基准,测量频繁重渲染的客户端场景,不能代表真实用户数据和所有性能定义。
  • 我们应编写其他基准来覆盖js-framework-benchmark未涉及的场景,框架作者也应教育消费者关于基准的作用和局限性。

关键信息:

  • js-framework-benchmark由 Stefan Krause 维护,一人承担主要维护工作。
  • 核心测试是渲染最多 10k 行的<table>并进行增删改等操作。
  • 不测量 SSR 和水化,多数框架测试一个大组件,框架作者会优化以展示最佳性能,10k 行数据场景特殊,仅针对 Chrome,仅测量重渲染,忽略首次渲染成本等。
  • 有多个浏览器基准,应创建更多 JavaScript 框架基准。

重要细节:

  • Stefan Krausejs-framework-benchmark付出大量努力,如解决 Chrome 124 问题。
  • 不同框架在基准测试中的优化方式不同,如 Svelte 改变 HTML 风格,Vue 引入v-memo指令,事件委托在不同框架中的处理方式等。
  • 10k 行数据场景在多数 web 应用中不常见,会夸大某些优化的效果。
  • 基准测试依赖 Chrome 高级 API 且仅测量客户端渲染,不测量首次渲染成本等。
  • 其他浏览器基准如 Speedometer、MotionMark 等各有侧重,应创建更多 JavaScript 框架基准。
阅读 29
0 条评论