"use strict"; (function (factory) { if (typeof Benchmark !== "undefined") { factory(Benchmark); } else { factory(require("benchmark")); } })(function (Benchmark) { var suite = new Benchmark.Suite; suite.add("\"use asm\";", function () { "use asm"; const N = 128|0; let m1 = new Uint32Array(N * N); let m2 = new Uint32Array(N * N); let res = new Uint32Array(N * N); for (let i = 0|0; (i|0) < (N|0); i=(i+1)|0) { for (let j = 0|0; (j|0) < (N|0); j=(j+1)|0) { for (let k = 0|0; (k|0) < (N|0); k=(k+1)|0) { res[(i << 7) + j|0] += m1[(i << 7) + k|0] * m2[(k << 7) + j|0] } } } }); suite.add("\"use asm\";", function () { "use asm"; const N = 128|0; let m1 = new Uint32Array(N * N); let m2 = new Uint32Array(N * N); let tmp = new Uint32Array(N * N); let res = new Uint32Array(N * N); for (let i = 0|0; (i|0) < (N|0); i=(i+1)|0) { for (let j = 0|0; (j|0) < (N|0); j=(j+1)|0) { tmp[(i << 7) + j|0] = m2[(j << 7) + i|0]; } } for (let i = 0|0; (i|0) < (N|0); i=(i+1)|0) { for (let j = 0|0; (j|0) < (N|0); j=(j+1)|0) { for (let k = 0|0; (k|0) < (N|0); k=(k+1)|0) { res[(i << 7) + j|0] += m1[(i << 7) + k|0] * tmp[(j << 7) + k|0] } } } }); 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("Matrix #jsbench #jsperf"); console.log(new Array(30).join("-")); suite.run(); });