Warning: session_start(): open(/var/lib/php/sessions/sess_sg0vhvv89kvhd36q0i2isu76kr, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass BenchForNSeconds {
settable Runnable action;
settable double seconds; // how many seconds to run the benchmark
volatile bool done;
long iterations;
O lastResult;
long startTime, endTime;
gettable new AverageAndMinMax stats;
*() {}
*(double *seconds, Runnable *action) {}
run {
startTime = sysNanos();
endTime = lround(startTime+secondsToNanos(seconds));
long time = sysNanos();
while (time < endTime) {
action?.run();
++iterations;
long time2 = sysNanos();
long runTook = time2-time;
stats.add(runTook);
time = time2;
}
endTime = time;
set done;
}
S formatNanos(double nanos) { ret n2_round(stats.avg()) + " ns"; }
toString {
ret isEmpty() ? "Not run"
: "min/avg/max="
+ n2_round(stats.min()) + "/"
+ n2_round(stats.avg()) + "/"
+ n2_round(stats.max()) + " ns";
}
}