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>
var obj = {
a: 'b',
c: 1,
d: ['e', 'f', 'g'],
h: {
i: 'j',
k: 2,
m: [1, 2, 3]
},
moreComplex: {a: 1, b: {y: 'z', w: []}},
aa: 2,
bb: 3,
cc: 4,
dd: 5
}
getObjectKeys = function (object) {
var key, keys = [];
for (key in object) {
if (object.hasOwnProperty(key)) keys.push(key);
}
return keys;
};
getObjectKeys2 = function (object) {
if (Object.keys && typeof Object.keys === 'function') return Object.keys(object);
var key, keys = [];
for (key in object) {
if (object.hasOwnProperty(key)) keys.push(key);
}
return keys;
};
getObjectKeys3 = function (object) {
if (Object.keys) return Object.keys(object);
var key, keys = [];
for (key in object) {
if (object.hasOwnProperty(key)) keys.push(key);
}
return keys;
};
getObjectKeys4 = (function () {
if (Object.keys && typeof Object.keys === 'function') {
return Object.keys;
} else {
return function(object) {
var key, keys = [];
for (key in object) {
if (object.hasOwnProperty(key)) keys.push(key);
}
return keys;
}
}
})();
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
native |
| ready |
custom |
| ready |
native w/fallback |
| ready |
native w/fallback (less checks) |
| ready |
pre-bake native or custom |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.