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
Just saying, it's indeed faster in webkit environment when you just use few divs but it seems not to be the case with more wrapping elements... and you know how much it happens for some layouts.
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div style="position:relative;display:inline-block; padding:40px;margin-top:12px">
<div id="mydiv">test<div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
function fullOffset(offsetName, elm){
var offset = elm[offsetName];
while (elm.offsetParent != null){
elm = elm.offsetParent;
offset = offset + elm[offsetName];
}
return offset;
console.log(offset);
}
var mydiv = document.getElementById('mydiv')
Ready to run.
Test | Ops/sec | |
---|---|---|
offset function |
| ready |
getBoundingClientRect |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.