Skip to main content

random os

import times, os, random

const iterations = 2000000000

proc foo() =
  var r = initRand(2019)
  let start = cpuTime()
  try:
    for k in 0..iterations:
      discard r.next()
  finally:
    discard 0
  echo("foo time: ", cpuTime() - start)


proc bar() =
  proc inner(r : var Rand) =
    for k in 0..iterations:
      discard r.next()
  var r = initRand(2019)
  let start = cpuTime()
  try:
    inner(r)
  finally:
    discard 0
  echo("bar time: ", cpuTime() - start)

proc baz() =
  let start = cpuTime()
  var r = initRand(2019)
  for k in 0..iterations:
    discard r.next()
  discard 0
  echo("baz time: ", cpuTime() - start)

foo()
foo()
bar()
bar()
baz()
baz()