每个恒定间隔的迭代次数基准

时间:2012-11-26 13:11:58

标签: ruby benchmarking

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

但是,如果次数设置得太小,算法之间的间隔差异太小,可能会被外部因素掩盖。如果设置的次数太大,则执行时间太长。因此,您必须通过试用结束错误猜测正确的次数。

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

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

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

2 个答案:

答案 0 :(得分:2)

我找到了这个宝石:benchmark/ips

答案 1 :(得分:1)

看看perfer:

https://github.com/jruby/perfer

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