2

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

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

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

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

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

4

2 回答 2

2

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

于 2012-11-29T19:02:25.683 回答
1

看看perfer:

https://github.com/jruby/perfer

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

于 2012-11-26T15:30:46.040 回答