Last active
July 12, 2017 10:51
-
-
Save jerch/4dff724139db42657c4c2fa384c345d3 to your computer and use it in GitHub Desktop.
typed vs normal - INC (https://jsbench.github.io/#4dff724139db42657c4c2fa384c345d3) #jsbench #jsperf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"/> | |
<title>typed vs normal - INC</title> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script> | |
<script src="./suite.js"></script> | |
</head> | |
<body> | |
<h1>Open the console to view the results</h1> | |
<h2><code>cmd + alt + j</code> or <code>ctrl + alt + j</code></h2> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
(function (factory) { | |
if (typeof Benchmark !== "undefined") { | |
factory(Benchmark); | |
} else { | |
factory(require("benchmark")); | |
} | |
})(function (Benchmark) { | |
var suite = new Benchmark.Suite; | |
Benchmark.prototype.setup = function () { | |
function _classic() { | |
let a = 0; | |
return function() { | |
return a++; | |
} | |
} | |
let classic = _classic(); | |
function _typed() { | |
let a = new Uint32Array(1); | |
return function() { | |
return a[0]++; | |
} | |
} | |
let typed = _typed(); | |
function _typed2() { | |
let a = new ArrayBuffer(4); | |
let view = new DataView(a); | |
return function() { | |
let v = view.getUint32(0); | |
v++; | |
view.setUint32(0, v, false); | |
return v; | |
} | |
} | |
let typed2 = _typed2(); | |
}; | |
suite.add("classic();", function () { | |
classic(); | |
}); | |
suite.add("typed();", function () { | |
typed(); | |
}); | |
suite.add("typed2();", function () { | |
typed2(); | |
}); | |
suite.on("cycle", function (evt) { | |
console.log(" - " + evt.target); | |
}); | |
suite.on("complete", function (evt) { | |
console.log(new Array(30).join("-")); | |
var results = evt.currentTarget.sort(function (a, b) { | |
return b.hz - a.hz; | |
}); | |
results.forEach(function (item) { | |
console.log((idx + 1) + ". " + item); | |
}); | |
}); | |
console.log("typed vs normal - INC"); | |
console.log(new Array(30).join("-")); | |
suite.run(); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment