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
How much faster is classList.add/remove than className regex manipulation?
<style type="text/css">
.foo { color:#F00; height:100px; opacity:0.3; } .bar { color:#0F0; height:200px;
opacity:0.5; } .baz { color:#00F; height:300px; opacity:0.7; }
</style>
<div id="base" class="foo bar">
<div class="foo bar baz">
test 1
</div>
<span class="foo bar">
test 2
</span>
<span class="baz">
test 3
</span>
</div>
var node = document.getElementById('base'),
className = node.className;
function addClass_className(el, className) {
if (el.className.indexOf(className) == -1) {
el.className += " " + className;
}
}
function addClass_className2(el, className) {
el.className = [el.className, className].join(' ');
}
function removeClass_className(ele, cls) {
var reg = new RegExp('\\b' + cls + '\\b');
ele.className = ele.className.replace(reg, '')
}
Ready to run.
Test | Ops/sec | |
---|---|---|
classList (add) |
| ready |
className (add) walkontable 0.2.0 |
| ready |
className2 (add) |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.