Rate counter: Difference between revisions

(Added Delphi example)
Line 1,147:
jobRatePeriod[fn_,time_]:=Block[{n=0},TimeConstrained[While[True,fn;n++]];n/time];
SetAttributes[jobRatePeriod,HoldFirst]</lang>
 
 
=={{header|Nim}}==
{{trans|Kotlin}}
import sugar, std/monotimes, times
 
type Func[T] = (T) -> T
 
func cube(n: int): int = n * n * n
 
proc benchmark[T](n: int; f: Func[T]; arg: T): seq[Duration] =
result.setLen(n)
for i in 0..<n:
let m = getMonoTime()
discard f(arg)
result[i] = getMonoTime() - m
 
echo "Timings (nanoseconds):"
for time in benchmark(10, cube, 5):
echo time.inNanoseconds</lang>
 
{{out}}
<pre>Timings (nanoseconds):
556
170
88
93
91
93
109
96
91
92</pre>
 
=={{header|OxygenBasic}}==
Anonymous user