Task

Write a program which uses a timer (with the least granularity available
on your system) to time how long a function takes to execute.

Whenever possible, use methods which measure only the processing time used
by the current process; instead of the difference in system time
between start and finish, which could include time used by
other processes on the computer.

This task is intended as a subtask for Measure relative performance of sorting algorithms implementations.




import times, strutils
 
proc doWork(x: int) =
  var n = x
  for i in 0..10000000:
    n += i
 
template time(statement: untyped): float =
  let t0 = cpuTime()
  statement
  cpuTime() - t0
 
echo "Time = ", time(doWork(100)).formatFloat(ffDecimal, precision = 3), " s"