Created
May 24, 2018 19:12
-
-
Save entrptaher/a6bcecaa60b7d668636f8f760db34483 to your computer and use it in GitHub Desktop.
getLastParam normal vs regex (http://jsbench.github.io/#a6bcecaa60b7d668636f8f760db34483) #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>getLastParam normal vs regex</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 () { | |
const target = "http://www.sub.domain.tld/foo/bar/boo"; | |
function getLastParamNormal(str) { | |
return str | |
.split("/") // split by slash | |
.filter(e=>e); // remove empty array elements | |
} | |
function getLastParamRegex(str) { | |
return str.match(/.*\/(.*)\/(.*)$/gmi) | |
} | |
}; | |
suite.add("getLastParamNormal(target);", function () { | |
getLastParamNormal(target); | |
}); | |
suite.add("getLastParamRegex(target);", function () { | |
getLastParamRegex(target); | |
}); | |
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("getLastParam normal vs regex"); | |
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