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
<div id="foo" style="width:500px; height:500px; padding:10px; border:10px solid #000000;">
</div>
var foo = document.getElementById('foo');
function _getOffset(elm, height) {
var cStyle = elm.ownerDocument && elm.ownerDocument.defaultView && elm.ownerDocument.defaultView.getComputedStyle
&& elm.ownerDocument.defaultView.getComputedStyle(elm, null),
ret = cStyle && cStyle.getPropertyValue(height ? 'height' : 'width') || '';
if (ret && ret.indexOf('.') > -1) {
ret = parseFloat(ret)
+ parseInt(cStyle.getPropertyValue(height ? 'padding-top' : 'padding-left'))
+ parseInt(cStyle.getPropertyValue(height ? 'padding-bottom' : 'padding-right'))
+ parseInt(cStyle.getPropertyValue(height ? 'border-top-width' : 'border-left-width'))
+ parseInt(cStyle.getPropertyValue(height ? 'border-bottom-width' : 'border-right-width'));
} else {
ret = height ? elm.offsetHeight : elm.offsetWidth;
}
return ret;
}
function getOffsetWidth(elm) {
return _getOffset(elm);
}
function getOffsetHeight(elm) {
return _getOffset(elm, true);
}
Ready to run.
Test | Ops/sec | |
---|---|---|
getBoundingClientRect |
| ready |
offsetWidth/offsetHeight |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.