JSFiddle - React, Tailwind, and code Playground
by balefrost
JavaScript
function timeFn(name, times, fn) {
var start = Date.now();
for (var i = 0; i < times; ++i) {
fn();
}
var stop = Date.now();
console.log(name, ":", stop - start, "ms");
}
function Callable2(f, a0, a1) {
this._f = f;
this._a0 = a0;
this._a1 = a1;
}
Callable2.prototype.invoke = function() {
return this._f(this._a0, this._a1);
};
function Callable0(f) {
this._f = f;
}
Callable0.prototype.invoke = function() {
return this._f();
};
var rounds = 3;
var times = 10000000;
function foo(a, b) {
return a + b;
}
function bar() {
return 5 * 4 * 3 * 2;
}
for (var round = 0; round < rounds; ++round) {
var c2 = new Callable2(foo, 4, 5)
var c0 = new Callable0(bar);
timeFn("Callable2", times, function() {
c2.invoke();
});
timeFn("two-param function", times, function() {
foo(4, 5);
});
timeFn("Callable0", times, function() {
c0.invoke();
});
timeFn("two-param function", times, function() {
bar();
});
}