JSFiddle - React, Tailwind, and code Playground

by gutek

JavaScript

var obj = {
    utils: {
        macro: {
            word: function() {
                return 'hello';
            }
        }
    }
};

var ar = [], x;

for(x = 0; x < 1000000; x++) {
    ar[x] = x;
}

function slow() {
    var i;
    for(i = 0; i < 10000000; i += 1) {
        obj.utils.macro.word();
    }
}


function slowArray(r) {
    var i, j;
    for(j = 0; j < r; j += 1) {
        for(i = 0; i < ar.length; i += 1) {
            ar[i];
        }
    }
}

function slowArray2(r) {
    var i, j;
    for(j = 0; j < r; j += 1) {
        for(i in ar) {
            
            if (ar.hasOwnProperty(i)) {
               ar[i];
            }
        }
    }
}


function slowArray3(r) {
    var i, j;
    for(j = 0; j < r; j += 1) {
        
        ar.forEach(function(element, index, arrayi) {
            element;
        });
    }
}

function fastArray(r) {
    var i, l = ar.length, j;
    for(j = 0; j < r; j += 1) {
        for(i = 0; i < l; i += 1) {
            ar[i];
        }
    }
}


function fast() {
    var i, l = obj.utils.macro.word;
    for(i = 0; i < l; i += 1) {
        l();
    }
}

function mainLoop() {
    var i;
    for(i = 0; i < 2; i += 1) {
        
        if(i === 0) {
            console.time('slow');
            slowArray(50);
            console.timeEnd('slow');
            console.time('slow2');
            //slowArray2(25);
            console.timeEnd('slow2');
            console.time('slow3');
            //slowArray3(25);
            console.timeEnd('slow3');
        } else {
            console.time('fast');
            fastArray(50);
            console.timeEnd('fast');
        }
        
        
    }
}

mainLoop();