2014-03-26 51 views
0

我已經使用卡尺模板https://github.com/dcsobral/scala-foreach-benchmark多年來的快樂。它多次運行隨機構造的問題,並計算平均時間消耗。基準時間和斯卡拉健身

現在我遇到了非確定性算法。所以我需要知道運行時間和最終的健康狀況。我正在尋找一個java/scala基準框架,它可以衡量平均和最差情況下的兩個特徵。

非確定性意味着算法依賴於某個隨機生成器來做出決定。它用來找到一個接近最優的解決方案,其中搜索最優化需要太多的處理器時間。例如TSP問題的解決方案。

健身意味着優化過程的成本函數。不同的運行(使用不同的隨機種子)可能會帶來不同的成本。所以你不僅需要穩定運行時間,還需要穩定成本價值(健身)。

我不知道是否重複調用一個函數,直到它顯示出可接受的運行時間變化是基準框架的共同特徵,但caliper是這樣做的,我搜索了一個更高級且能夠處理的類似框架除時間之外的健身

回答

0

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

+0

它有助於解決問題的一個方面:時間。但第二個:健身(到最佳距離)呢? – ayvango

+0

我不明白你的意思。 「最佳」只是有史以來觀察到的最佳運行時間?如果是這樣,測量基準執行幾次並處理結果數據有什麼問題? –

+0

解釋精確搜索的行爲 – ayvango