基准测试构建器
免费在线JavaScript性能测试工具,无需安装。可比较JavaScript代码的执行速度。
关于基准构建器
一个面对面对比的 JavaScript 微基准工具:粘贴两个函数体(片段 A 和片段 B),设置迭代次数,工具会先对每个片段执行 100 次预热调用,再运行设定数量的测量调用,然后报告总耗时、每秒操作数,以及哪个片段更快、快多少倍。
使用方法
1. 在顶部卡片中设置迭代次数(默认为 10000)。 2. 在片段 A 卡片中,填写可选标签(默认为 "A")和要基准测试的函数体(例如 `return Math.random()`)。 3. 对片段 B 做同样操作(例如 `return crypto.getRandomValues(new Uint32Array(1))[0]`)。 4. 点击运行——在两个片段体都不为空之前,按钮处于禁用状态。 5. 阅读结果卡片:每个片段显示以毫秒为单位的总耗时和每秒操作数,外加一行页脚标明较快的片段和速度比值。如果某片段抛出异常,则会改为以红色显示其错误。
执行模型与指标
每个片段都用 `new Function(code)` 包装,并作为无参函数调用,因此它必须是有效的函数体(使用 `return ...` 来执行工作;也允许顶层语句)。 - 预热:在计时前无条件执行 100 次调用,以便 JS 引擎进行优化。 - 测量:在紧凑循环中运行片段 `iterations` 次之前和之后,分别采样 `performance.now()`。 - 每秒操作数:按 `iterations / (timeMs / 1000)` 计算,四舍五入取整。 - 比值:`max(timeA, timeB) / min(timeA, timeB)`,显示时保留两位小数;耗时较小的片段被报告为更快。 请注意,这是一个尽力而为的浏览器内微基准,并非统计上严格的测试套件:结果会受机器负载、浏览器引擎、GC 停顿和死代码消除的影响。
▶为什么每次点击运行结果都不同?
▶片段能访问变量、导入或 async/await 吗?
▶如果片段抛出异常会怎样?
▶我的数据会发送到服务器吗?
如果这个工具对你有帮助的话,请考虑请我喝杯咖啡。
请给我买杯咖啡吧。