var measure = function(fn, iterations, timeout) { iterations || (iterations = 10000); timeout || (timeout = 5000); var i, end, total; var timeoutMsg = ""; var start = performance.now(); for (i = 0; i < iterations; i++) { fn(); end = performance.now(); total = end - start; if (total > timeout) { timeoutMsg = "[TIMEOUT] "; break; } } return timeoutMsg + "Iterations: " + i + ", Avg time: " + total/i + ", Total time: " + total; };