jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<pre>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<form action="" method="post">
<h1 data-parentId="1" ><input name="data[1][key]" id="data[1]" value="Global"></h1>
<ul>
<li data-childId="1" ><input name="data[1][1][key]" id="data[1][1]" value="cleanTitle"> : <input name="data[1][1][value]" id="data[1][1]" value="Project CSS"></li>
<li data-childId="2" ><input name="data[1][2][key]" id="data[1][2]" value="FirstName"> : <input name="data[1][2][value]" id="data[1][2]" value="Stephen"></li>
<li data-childId="3" ><input name="data[1][3][key]" id="data[1][3]" value="LastName"> : <input name="data[1][3][value]" id="data[1][3]" value="Gobin"></li>
</ul>
<h1 data-parentId="2" ><input name="data[2][key]" id="data[2]" value="Home"></h1>
<ul>
<li data-childId="1" ><input name="data[2][1][key]" id="data[2][1]" value="cleanTitle"> : <input name="data[2][1][value]" id="data[2][1]" value="Project CSS"></li>
<li data-childId="2" ><input name="data[2][2][key]" id="data[2][2]" value="Company"> : <input name="data[2][2][value]" id="data[2][2]" value="Fiddlefly"></li>
<li data-childId="3" ><input name="data[2][3][key]" id="data[2][3]" value="test"> : <input name="data[2][3][value]" id="data[2][3]" value="tester"></li>
</ul>
<input type="submit" name="submit" id="submit" value="submit">
</form>
</body>
</html>
window.selectOne = function(selector) {
return document.querySelector(selector);
};
window.selectMany = function(selector) {
var items = {},
results = [],
length = 0,
i = 0;
// this doesn't work on IE 8- and Blackberry Browser
results = Array.prototype.slice.call(document.querySelectorAll(selector));
length = results.length;
// add the results to the items object
for ( ; i < length; ) {
items[i] = results[i];
i++;
}
// add some additional properties to this items object to
// make it look like an array
items.length = length;
items.splice = [].splice();
// add an 'each' method to the items
items.each = function(callback) {
var i = 0;
for ( ; i < length; ) {
callback.call(items[i]);
i++;
}
}
return items;
};
Ready to run.
Test | Ops/sec | |
---|---|---|
van |
| ready |
jquery |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.