JavaScript Performance Tester
Tests performance of different JavaScript Functions and prints the results to the console.
HTML
<input id="runTests" type="button" value="Run Tests"/>
<div id="testOutput"/>
JavaScript
var SECONDS_PER_TEST = 5;
var MS_PER_TEST = SECONDS_PER_TEST * 1000;
var MAX_TESTS_TO_RUN = 10;
var a = [];
var initializeTest = function(){
for(var i = 0; i < MAX_TESTS_TO_RUN; i++){
a[i] = 0;
}
};
const ARRAY_SIZE = 10;
var tests = {
firstMethod: function(){
for (var i = 0; i < a.length; i++) {
let b = new Array(ARRAY_SIZE).fill().map(u => { return []; });
}
},
secondMethod: function(){
for (var i = 0; i < a.length; i++) {
let b = new Array(ARRAY_SIZE);
for (var i = 0; i < ARRAY_SIZE; i++) {
b[i] = [];
}
}
},
thirdMethod: function(){
for (var i = 0, len = a.length; i < len; i++) {
let b = new Array(ARRAY_SIZE).fill();
b.forEach((val, i) => {
b[i] = [];
})
}
},
fourthMethod: function(){
for (var i = 0, len = a.length; i < len; i++) {
let b = Array.from({ length: ARRAY_SIZE }, () => []);
}
},
fifthMethod: function(){
for (var i = 0, len = a.length; i < len; i++) {
let b = [...Array(ARRAY_SIZE)].map(_=>([]))
}
},
sixMethod: function(){
for (var i = 0, len = a.length; i < len; i++) {
let b = [], total = ARRAY_SIZE;
while(total--) b.push([]);
}
},
};
var runTests = function(){
console.log('test11111111');
var testTimes = {};
for(var testName in tests){
testTimes[testName] = runTest(testName, tests[testName]);
}
var minTestTime = 10000;
for(var testName in testTimes){
var testTime = testTimes[testName];
if(testTime < minTestTime){
minTestTime = testTime;
}
}
console.log('\nTest Results:');
for(var testName in testTimes){
var testTime = testTimes[testName];
if(testTime == minTestTime){
console.log(' ' + testName + ': ...