精确基准测试

主要观点:分享一种在循环遍历一段代码时计算循环开销并测量其运行时间的数学方法,用于比较不同代码的运行速度。
关键信息:

  • 有一段代码method1()要与method2()进行基准测试,因计算机运行速度快,需多次运行并测量总时间。
  • 标准定性方法是用benchmarkTotal()函数多次运行代码并测量总时间来比较快慢。
  • 为得到定量比较,要考虑循环开销,通过公式计算出方法运行时间的差异和百分比。
  • 要测量单个函数调用的时间,可将循环分为先调用一次多次再调用两次多次,以消除循环开销。
  • 通过benchmarkTotal()benchmarkSingle()Math.atan2()进行测试,验证方法的有效性,发现简单方法有约 2%的循环开销。
    重要细节:
  • benchmarkTotal()函数通过循环多次执行函数并计算开始和结束时间的差值来测量总时间。
  • 定量比较时,通过公式计算出方法运行时间的差异delta和百分比p
  • benchmarkSingle()函数通过将循环分为先调用一次多次再调用两次多次来消除循环开销并测量单个函数调用的时间。
  • 在测试中,用average()函数对benchmarkTotal()benchmarkSingle()进行多次测试并取平均值,验证方法的准确性。
阅读 9
0 条评论