gpt4 book ai didi

javascript - jsPerf 如何确定哪个代码片段最快?

转载 作者:IT王子 更新时间:2023-10-29 03:08:58 29 4
gpt4 key购买 nike

今天我访问了jsPerf现在我想知道……

  1. 什么是“操作数/秒”?
  2. 它进行了多少次迭代?
  3. 它根据什么计算哪个更快?这些计算背后的公式是什么?

示例:http://jsperf.com/concatenation-vs-join

谁能告诉我?

最佳答案

我写了Benchmark.js ,这jsPerf用途。

  1. "ops/sec"代表每秒操作数。那是测试预计在一秒钟内执行的次数。

  2. 重复执行测试,直到达到获得 percentage uncertainty 所需的最短时间。用于小于或等于 1% 的测量。迭代次数将根据环境计时器的分辨率以及测试在最短运行时间内可以执行的次数而有所不同。我们收集完成的测试运行 5(可配置),或至少 5 运行 (也可配置),然后对样本进行统计分析。因此,测试可能会在 50 毫秒 (大多数环境的最短运行时间) 内重复 100,000 次,然后重复 100 (5 秒)。更大的样本量(在本例中为 100),导致更小的 margin of error .

  3. 我们不仅根据操作数/秒来决定哪个测试更快,还考虑了误差幅度。例如,具有较低 ops/sec 但较高误差幅度的测试在统计上可能无法区分与具有较高 ops/sec 和较低误差幅度的测试。

    我们使用了 welch t-test ,类似于SunSpider使用,但切换到 unpaired 2-sample t-test对于等方差(方差极小),因为 welch t 检验在比较较低的 ops/sec 和较高的 ops/sec 与小方差时存在问题,这导致了 degrees of freedom计算为小于 1。我们还为具有类似操作/秒的测试添加了 5.5% 限额,因为真实世界的测试表明,相同的测试可以从测试到重新测试摆动 ~5%。 T 检验用于检查检验之间的差异是否为 statistically significant .

关于javascript - jsPerf 如何确定哪个代码片段最快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986245/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com