Бенчмаркинг с критерием занимает слишком много времени - PullRequest
1 голос
/ 26 апреля 2020

У меня есть несколько тестов, которые я хотел бы проверить, используя критерий. Проблема в том, что функция, которую я пытаюсь сравнить, может занять очень много времени (100 секунд).

Моя настройка примерно такая

benchmarks128StatesMediumFormulas =
[
    bench "Testing for transition system t128StatesAgents1 and feasy"
          (nf (myFuntion x1 x2) 2),
    bench "Testing for transition system t128StatesAgents2 and feasy"
          (nf (myFunction x1 x2 feasy) 2)
]

, где моя функция - это функция I нужно провести бенчмарк, а x1 и x2 определены где-то еще в файле.

Затем я делаю

main :: IO ()
main = defaultMain
  [
    bgroup "for one agent easy:" benchmarks128StatesEasyFormulas
] 

Затем я получаю вывод чего-то вроде

benchmarking 128 states and easy formulas:/Testing for transition system t128StatesAgents2 and fEasy1
time                 115.5 s    (111.1 s .. 119.2 s)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 115.7 s    (115.0 s .. 116.7 s)
std dev              983.9 ms   (389.9 ms .. 1.263 s)
variance introduced by outliers: 19% (moderately inflated)

Проблема в том, что это более часа, чтобы получить такой результат.

Это потому, что критерий использует слишком много выборок ?? Или есть какая-то другая проблема? Можно ли обойти эту проблему ??

Я читал что-то о опции --time-limit, но не совсем понял, как она работает. Если решение вращается вокруг --time-limit, как я могу передать этот аргумент при использовании stack benck?

...