2022-10-7 About 1 min
这里的转译器依然指的是将高版本 ECMAScript 向低版本转译的“转译器”,并非 JavaScript 引擎。本章将介绍社区常见的转译工具,以及它们在各个方面的对比,便于开发者选择。
# 开源社区的转译工具
转译工具 | 介绍 |
---|---|
acorn | |
@babel/eslint-parser | |
babel-eslint9 | |
@babel/parser | |
esformatter | |
espree | |
esprima | |
flow | |
hermes-parser | |
meriyah | |
recast | |
seafox | |
shift | |
tenko | |
traceur | |
@typescript-eslint/parser | |
typescript | |
uglify-js |
# 性能对比
# benchmark.js
可以用 benchmark.js 对各个转译工具做性能基准测试。
https://www.cnblogs.com/jacksplwxy/p/11506183.html
A: 运行 N 次,看耗时
可能出现耗时 0ms 的情况,现在的设备运行速度越来越快了
B: 运行 T 时间,看次数
会受垃圾回收引发停顿等的影响,每次测试获得的结果不同,如何获取更精确的结果呢?
1. 多测试几次,取均值。但 V8 Benchmark Suite 只测试一次,Dromaeo 会测试 5 次
1. 获取精确的系统时钟,把运行时间压缩到系统不会停顿的时间段内,将时间尽可能多地用在测试代码的运行上,而不是系统停顿
C: 运行 N 次,但保证至少运行 T 时间
TODO
D: