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 src="http://docs.sencha.com/ext-js/4-1/extjs/ext-all.js"></script>
<script src="https://raw.github.com/bestiejs/lodash/v0.9.0/lodash.min.js"></script>
var extjs = {
companyName: 'Ext JS',
products: ['Ext JS', 'Ext GWT', 'Ext Designer'],
isSuperCool: true,
office: {
size: 2000,
location: 'Palo Alto',
isFun: true
}
};
var newStuff = {
companyName: 'Sencha Inc.',
products: ['Ext JS', 'Ext GWT', 'Ext Designer', 'Sencha Touch', 'Sencha Animator'],
office: {
size: 40000,
location: 'Redwood City'
}
};
var merge = function(target, src) {
var array = Array.isArray(src)
var dst = array && [] || {}
if (array) {
target = target || []
dst = dst.concat(target)
src.forEach(function(e, i) {
if (typeof e === 'object') {
dst[i] = merge(target[i], e)
} else {
if (target.indexOf(e) === -1) {
dst.push(e)
}
}
})
} else {
if (target && typeof target === 'object') {
Object.keys(target).forEach(function (key) {
dst[key] = target[key]
})
}
Object.keys(src).forEach(function (key) {
if (typeof src[key] !== 'object' || !src[key]) {
dst[key] = src[key]
}
else {
if (!target[key]) {
dst[key] = src[key]
} else {
dst[key] = merge(target[key], src[key])
}
}
})
}
return dst
}
var extmerge = function(destination) {
var i = 1,
ln = arguments.length,
mergeFn = extmerge,
object, key, value, sourceKey;
for (; i < ln; i++) {
object = arguments[i];
for (key in object) {
value = object[key];
if (value && value.constructor === Object) {
sourceKey = destination[key];
mergeFn(sourceKey, value);
}
else {
destination[key] = value;
}
}
}
return destination;
};
Ready to run.
Test | Ops/sec | |
---|---|---|
ExtJS |
| ready |
LoDash |
| ready |
jQuery |
| ready |
deepmerge |
| ready |
extmerge2 |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.