我正在尝试使用标准库进行一些基准测试。
我尝试了一个简单的例子:
module Main where
import Criterion.Types
import Criterion.Main
myConfig :: Config
myConfig = defaultConfig {
resamples = 1
}
main :: IO ()
main = do
let f = (\x -> bench (show x) $ whnf xyz x)
defaultMainWith myConfig [
bgroup "fib" [
env (pure 5) f
]
]
xyz :: Int -> [Double]
xyz 0 = []
xyz x = case x of
100 -> [sin $ fromIntegral x] ++ (xyz (x - 1))
_ -> [sin $ fromIntegral (2 * x)] ++ (xyz (x - 1))
但这似乎需要几秒钟才能完成,我认为它的完成速度要快得多?
为什么要花这么长时间?我该如何减少工期(即使以不准确性为代价)?
答案 0 :(得分:0)
设置Config
的{{3}}字段。例如:
myConfig :: Config
myConfig = defaultConfig {
resamples = 1, timeLimit = 1
}