performance.now()
W3C High Resolution Time API 提供的高精度时间测量方法,返回从页面加载开始经过的毫秒数,精度可达微秒级(通常为 5μs 的倍数)。与 Date.now() 不同,performance.now() 不受系统时间调整影响,是测量代码执行耗时的业界标准选择。
JIT 编译(即时编译)
Just-In-Time Compilation 的缩写。现代 JavaScript 引擎(如 V8、SpiderMonkey)采用的优化技术。代码在前几次执行时进行解释执行和基线编译,引擎识别到热点代码后会进行优化编译,生成更高效的机器码。预热运行的目的就是触发这一优化过程。
预热(Warmup)
在正式计时之前先运行若干次代码,让 JavaScript 引擎完成 JIT 编译优化。预热后的代码处于优化后的稳定状态,正式计时结果更能反映代码的真实性能。通常 3 至 10 次预热就足以触发大多数 JIT 优化。
中位数(Median)
将所有运行耗时从小到大排序后位于中间位置的值。相比平均值,中位数更能抵抗极端值(如 GC 导致的异常长耗时)的干扰,是衡量代码典型执行时间的更可靠指标。
标准差(Standard Deviation)
反映各次运行耗时离散程度的统计量。标准差越小,说明代码性能越稳定、可重复性越好。如果标准差很大,可能意味着存在垃圾回收干扰、CPU 调度波动或其他不稳定因素。
ops/s(每秒操作数)
Operations Per Second 的缩写,表示代码每秒可执行的次数。计算公式为:运行次数除以总耗时(秒)。ops/s 数值越大,代码性能越好。该指标直观易懂,适合在不同代码方案之间进行横向对比。
垃圾回收(GC)
Garbage Collection 的缩写,是 JavaScript 引擎自动回收不再使用的内存的过程。GC 执行时会暂停代码执行(Stop-The-World),导致某些运行的耗时突然增加。在性能测试中,GC 是造成耗时波动的常见原因之一。
V8 引擎
Google 开发的开源 JavaScript 引擎,用于 Chrome 浏览器和 Node.js 运行时。V8 采用 JIT 编译技术,能将 JavaScript 代码直接编译为机器码执行,是目前性能最强的 JavaScript 引擎之一。本工具的计时结果受 V8 引擎优化策略的影响。
事件循环(Event Loop)
JavaScript 运行时的核心机制,负责协调异步操作的执行顺序。事件循环不断检查调用栈是否为空,然后从任务队列中取出待执行的任务。理解事件循环对于编写高性能异步代码和正确使用计时工具都很重要。
基准测试(Benchmark)
通过标准化的测试方法来评估代码或系统的性能表现。好的基准测试需要控制变量、多次运行取统计值、排除干扰因素(如 GC 和 CPU 调度)。本工具提供了便捷的基准测试环境,帮助开发者快速评估代码性能。
UD5工具箱