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
test the performance of the jquery map versus a native for loop map
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
testArray = new Array(100);
for (var i = 0; i < 100; i++) {
testArray[i] = i;
}
forMap = function(array, mapFunction) {
var newArray = new Array(array.length);
for (var i = 0,l=array.length; i < l; i++) {
newArray[i] = mapFunction(array[i]);
}
return newArray;
}
forMap2 = function(array, mapFunction) {
var newArray = [];
for (var i = 0,l=array.length; i < l; i++) {
newArray.push(mapFunction(array[i]));
}
return newArray;
}
whileMap = function(array, mapFunction) {
var i = array.length;
var newArray = new Array(i);
while (i--) {
newArray[i] = mapFunction(array[i]);
}
return newArray;
}
whileMap2 = function(array, mapFunction) {
var i = array.length;
var newArray = [];
while (i--) {
newArray.push(mapFunction(array[i]));
}
return newArray;
}
Array.prototype.polyfillMap = function(callback, thisArg) {
var T, A, k;
if (this == null) {
throw new TypeError(' this is null or not defined');
}
var O = Object(this);
var len = O.length >>> 0;
if (typeof callback !== 'function') {
throw new TypeError(callback + ' is not a function');
}
if (arguments.length > 1) {
T = thisArg;
}
A = new Array(len);
k = 0;
while (k < len) {
var kValue, mappedValue;
if (k in O) {
kValue = O[k];
mappedValue = callback.call(T, kValue, k, O);
A[k] = mappedValue;
}
k++;
}
return A;
};
double = function(x) {
return x * 2;
}
Ready to run.
Test | Ops/sec | |
---|---|---|
jquery map |
| ready |
for loop map |
| ready |
for loop |
| ready |
array.map |
| ready |
while loop |
| ready |
while loop map |
| ready |
while loop map with array push |
| ready |
for loop map with array push |
| ready |
polyfill |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.