按每个恒定间隔的迭代次数进行基准测试



为了对一个简单任务的不同算法的效率进行基准测试并进行比较,我发现最常见的方法是设置一个恒定的迭代次数,并测量每个算法所花费的时间间隔。

但是,如果次数设置得太小,则算法之间的间隔差异将太小,并且可能被外部因素掩盖。如果您将次数设置得太大,那么执行将花费太多时间。所以你必须通过试错来猜测正确的次数。

我认为,与其这样做,不如设置一个恒定的时间间隔来运行每个算法,然后测量每个算法在该时间间隔内可以进行多少次迭代。

通过这样做,基准的可靠性将更加稳定。按照传统方式,基准测试对于需要时间的任务将更加可靠。

我还没有见过这种基准测试方式。人们真的是这样做的吗?这种衡量方式是否有基准框架?我问这是一个非特定语言的问题,但如果有这样的框架,特别是Ruby,请介绍一些。还是我的想法错了?

我发现了这个宝石:benchmark/ips。

看看perfer:

https://github.com/jruby/perfer

这有几个机制,包括迭代/s。不要担心这是一个jruby repo,它适用于所有Ruby实现,并且是作为GSoC 2012的一部分编写的。

最新更新