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:

# 性能对比数据

# Rust

# Esbuild

Last update: October 7, 2022 19:03
Contributors: hoperyy