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.




( ( time
  =   fun funarg t0 ret
    .   !arg:(?fun.?funarg)
      & clk$:?t0
      & !fun$!funarg:?ret
      & (!ret.flt$(clk$+-1*!t0,3) s)
  )
& ( fib
  =
    .   !arg:<2&1
      | fib$(!arg+-1)+fib$(!arg+-2)
  )
& time$(fib.30)
)