Skip to content

Instantly share code, notes, and snippets.

@aduth
Created December 13, 2018 17:06
Show Gist options
  • Select an option

  • Save aduth/479cdbd5b639b3eff88dede976893a25 to your computer and use it in GitHub Desktop.

Select an option

Save aduth/479cdbd5b639b3eff88dede976893a25 to your computer and use it in GitHub Desktop.
Gutenberg - Optimize runSelector (http://jsbench.github.io/#479cdbd5b639b3eff88dede976893a25) #jsbench #jsperf
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Gutenberg - Optimize runSelector</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>
"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 () {
var state = {};
var store = { getState: function() { return state; } };
var beforeCreateStateSelector = function createStateSelector(selector) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return selector.apply(undefined, [store.getState()].concat(args));
};
};
var beforeSelector = beforeCreateStateSelector( function( state, a, b ) {} );
var afterCreateStateSelector = function createStateSelector(selector) {
return function runSelector() {
var argsLength = arguments.length;
var args = new Array(argsLength + 1);
args[0] = store.getState();
for (var i = 0; i < argsLength; i++) {
args[i + 1] = arguments[i];
}
return selector.apply(undefined, args);
};
};
var afterSelector = afterCreateStateSelector( function( state, a, b ) {} );
};
suite.add("beforeSelector( 1, 2 );", function () {
beforeSelector( 1, 2 );
});
suite.add("afterSelector( 1, 2 );", function () {
afterSelector( 1, 2 );
});
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("Gutenberg - Optimize runSelector");
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