CurryInfo: benchmark-papers-3.0.0 / Test.Benchmark.benchTimeNF

definition: Info
 
benchTimeNF :: IO a -> Benchmark Float
benchTimeNF getexp = benchmark $ do
  garbageCollect
  garbageCollectorOff
  pi1 <- getProcessInfos
  exp <- getexp
  seq (id $!! exp) (return ())
  pi2 <- getProcessInfos
  garbageCollectorOn
  let rtime = maybe 0 id (lookup RunTime pi2)
              - maybe 0 id (lookup RunTime pi1)
  return (fromInt rtime / 1000.0)
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
Benchmark the time (in seconds)
to compute the normal form of an expression.
The expression is created by an I/O action (first parameter).
This avoids the sharing of the normalization process between multiple
runs of the benchmark and provides more flexibility, e.g.,
to read benchmark input data from global variables.
failfree: Info
 _
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_) |-> _}
name: Info
 benchTimeNF
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 Prelude.IO a -> Benchmark Prelude.Float
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term