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/1/jquery.min.js"></script>
<script>
var toString = Object.prototype.toString;
var each = function(obj, fn) {
for (i in obj) {
obj.hasOwnProperty(i) && fn(obj[i], i);
}
};
var attrs = {
id : 'sectionMenu',
className : 'section'
};
var htmlStr = "<div id='container'><div id='first'><p>First paragraph</p><p>Second paragraph</p></div></div>";
var htmlObj = {
tag : 'div',
attrs : {
id : 'container'
},
contents : [{
tag : 'div',
attrs : {
id : 'first'
},
contents : [{
tag : 'p',
contents : ['First paragraph']
},{
tag : 'p',
contents : ['Second paragraph']
}]
}]
};
function template (obj) {
var el = document.createElement(obj.tag);
each(obj.attrs, function(val, key) {
el[key] = val;
});
each(obj.contents, function(val, key) {
el.appendChild(
toString.call(val) == '[object Object]' ?
template(val) :
document.createTextNode(val)
);
});
return el
};
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
jQuery |
| ready |
jQuery multi-element append |
| ready |
native multi-element append |
| ready |
native innerHTML |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.