RosettaCodeData/Task/Rate-counter/Phix/rate-counter.phix
2019-09-12 10:33:56 -07:00

24 lines
591 B
Text

procedure task_to_measure()
sleep(0.1)
end procedure
printf(1,"method 1: calculate reciprocal of elapsed time:\n")
for trial=1 to 3 do
atom t=time()
task_to_measure()
t = time()-t
string r = iff(t?sprintf("%g",1/t):"inf")
printf(1,"rate = %s per second\n",{r})
end for
printf(1,"method 2: count completed tasks in one second:\n")
for trial=1 to 3 do
integer runs=0
atom finish=time()+1
while true do
task_to_measure()
if time()>=finish then exit end if
runs += 1
end while
printf(1,"rate = %d per second\n",runs)
end for