2014-03-26 48 views
0

我已经使用卡尺模板https://github.com/dcsobral/scala-foreach-benchmark多年来的快乐。它多次运行随机构造的问题,并计算平均时间消耗。基准时间和斯卡拉健身

现在我遇到了非确定性算法。所以我需要知道运行时间和最终的健康状况。我正在寻找一个java/scala基准框架,它可以衡量平均和最差情况下的两个特征。

非确定性意味着算法依赖于某个随机生成器来做出决定。它用来找到一个接近最优的解决方案,其中搜索最优化需要太多的处理器时间。例如TSP问题的解决方案。

健身意味着优化过程的成本函数。不同的运行(使用不同的随机种子)可能会带来不同的成本。所以你不仅需要稳定运行时间,还需要稳定成本价值(健身)。

我不知道是否重复调用一个函数,直到它显示出可接受的运行时间变化是基准框架的共同特征,但caliper是这样做的,我搜索了一个更高级且能够处理的类似框架除时间之外的健身

回答

0

使用JMH:它具有Scala绑定,并且可以sample execution time

+0

它有助于解决问题的一个方面:时间。但第二个:健身(到最佳距离)呢? – ayvango

+0

我不明白你的意思。 “最佳”只是有史以来观察到的最佳运行时间?如果是这样,测量基准执行几次并处理结果数据有什么问题? –

+0

解释精确搜索的行为 – ayvango