Я использовал шаблон на основе суппорта https://github.com/dcsobral/scala-foreach-benchmark счастливо в течение многих лет. Он запускает случайно сконструированные задачи несколько раз, а затем вычисляет среднее время.
Теперь я столкнулся с недетерминированным алгоритмом. Поэтому мне нужно знать как время бега, так и конечную физическую форму. Я ищу тестовую среду java/scala, которая может измерять обе характеристики в среднем и наихудшем сценарии.
Недетерминированный означает, что алгоритм полагается на некий генератор случайных чисел для принятия решений. Раньше он находил решение, близкое к оптимальному, тогда как поиск оптимума требовал слишком много процессорного времени. например решение проблемы ТС.
Пригодность означает функцию стоимости для процесса оптимизации. Различные запуски (с разными случайными семенами) могут иметь разную стоимость. Поэтому вам нужно стабилизировать не только время выполнения, но и стоимость (фитнес).
Я не знаю, является ли повторяющийся вызов функции до тех пор, пока она не покажет приемлемое изменение времени выполнения, обычной чертой тестовых фреймворков, но калипер делает это, и я ищу аналогичный фреймворк, который является более продвинутым и способным обрабатывать пригодность помимо времени.