2010-02-05 03:02:27 +00:00
|
|
|
// Runs a function many times without the function call overhead
|
2010-10-10 04:33:02 +00:00
|
|
|
function benchmark(fn, times, name){
|
2010-02-05 03:02:27 +00:00
|
|
|
fn = fn.toString();
|
|
|
|
var s = fn.indexOf('{')+1,
|
|
|
|
e = fn.lastIndexOf('}');
|
|
|
|
fn = fn.substring(s,e);
|
|
|
|
|
2012-05-18 17:28:50 +00:00
|
|
|
return benchmarkString(fn, times, name);
|
2010-10-10 04:33:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function benchmarkString(fn, times, name) {
|
2012-05-18 17:28:50 +00:00
|
|
|
var fn = new Function("i", "var t=new Date; while(i--) {" + fn + "}; return new Date - t")(times)
|
|
|
|
fn.displayName = name || "benchmarked";
|
|
|
|
return fn;
|
2010-02-05 03:02:27 +00:00
|
|
|
}
|