我多年来一直使用基于卡尺的模板https://github.com/dcsobral/scala-foreach-benchmark。它会多次运行随机构造的问题,而不是计算平均时间消耗。
现在我面临着非确定性算法。所以我需要知道运行时间和健康状况。我正在寻找一个可以在平均和最差情况下测量这两个特征的java / scala基准框架。
非确定性意味着算法依赖于某个随机生成器来做出决策。它用于找到接近最优的解决方案,其中搜索最优将需要太多的处理器时间。例如解决TSP问题。
适应性是指优化过程的成本函数。不同的运行(具有不同的随机种子)可能带来不同的成本。因此,您不仅需要稳定运行时间,还需要稳定成本值(适应性)。
我不知道是否重复调用函数直到它显示可接受的运行时变化是基准框架的共同特征,但是卡尺是这样做的,我搜索一个类似的框架,它更先进,能够处理健身以及时间。