// returns minimal time needed (nanos) static long benchFor5Seconds(S desc, Runnable r) { ret benchForNSeconds(desc, r, 5); } static long benchFor5Seconds(Runnable r) { ret benchFor5Seconds(str(r), r); } // returns result of function static A benchFor5Seconds(S desc default str(f), IF0 f) { benchFor5Seconds(desc, r { f! }); ret f!; }