You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.2 KiB

/*
* Basic function call performance.
*/
if (typeof print !== 'function') { print = console.log; }
function func() {
// allocate regs so that meaningful value stack resizes happen
var x0, x1, x2, x3, x4, x5, x6, x7, x8, x9;
var y0, y1, y2, y3, y4, y5, y6, y7, y8, y9;
var z0, z1, z2, z3, z4, z5, z6, z7, z8, z9;
var z9 = 1;
return;
}
function test() {
var i;
var f = func; // eliminate slow path lookup from results
var t1 = Date.now();
for (i = 0; i < 1e6; i++) {
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
f(); f(); f(); f(); f(); f(); f(); f(); f(); f();
}
var t2 = Date.now();
print((1e6 * 100 / (t2 - t1)) + ' calls per millisecond');
}
try {
test();
} catch (e) {
print(e.stack || e);
throw e;
}