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
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<p id="bar" class="my-bar">
Bar
</p>
<div id="coo" class="my-foo">
<div id="car" class="my-bar">
<div id="caz" class="my-bar">
<div id="hoo" class="my-boo">
<div id="har" class="my-bar">
<div id="haz" class="my-bar">
<div id="yoo" class="my-boo">
<div id="yar" class="my-bar">
<div id="yaz" class="my-bar">
<div id="zoo" class="my-boo">
<div id="zar" class="my-bar">
<div id="zaz" class="my-bar">
<span id="baz" class="my-baz">Baz</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
var zaz = document.getElementById('zaz');
function El(el){ this._el = el; }
El.prototype.append = function append(el){ this._el.appendChild(el); return this; }
function q(id){ return new El(document.getElementById(id)); }
function qq(_class){ return document.getElementsByClassName(_class); }
function qqTag(tag){ return document.getElementsByTagName(tag); }
function qs(selector){ return new
El(document.querySelector(selector)); }
// NOTE: querySelectorAll() is, like JQuery, which is even WORSE... incredibly SLOW & to be avoided at all cost!
function $q(selector){
if (typeof selector === 'object'){
return new El(selector);
} else {
if (selector.indexOf('#') === 0) return q(selector.substr(1));
if (selector.indexOf('.') === 0) return qq(selector.substr(1));
if (selector.match( /[\#\.\[\ \:]/ ) ) return qs(selector);
else return qqTag(selector);
}
}
function DOMcomb(parent, filter_callback) {
var elems = [], cs = parent.children, len = cs.length;
if (filter_callback(parent)) elems.push(parent);
if (len) for (var i = 0; i < len; ++i) DOMcomb(cs[i], filter_callback);
return elems; /// return the results array
}
Ready to run.
Test | Ops/sec | |
---|---|---|
getElementById |
| ready |
q(id) |
| ready |
el.getElementsByClassName |
| ready |
qq(class) |
| ready |
DOMcomb(el) |
| ready |
$q(#id) |
| ready |
$(el) |
| ready |
$q(el) |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.