arrays - Better to declare JavaScript Object inside for loop or outside in terms of time optimization -


edit: question focussed on should objects declared inside loop (huge loop of order of billion count) in each iteration or better declare object once outside loop save time during object declaration (time spent on memory allocation) in each sprint.

i trying optimize code making sure don't spend time allocating memory objects declared inside loop in each iteration.

i have long loop (say order of billion) creates huge objects in each array iteration , pushes objects array. question is, if better declare object inside loop or declare outside javascript runtime doesn't have spend time allocating memory object in each sprint.

here tried loop of million count. tried billion count didn't complete on computer:

//case 1: object declared outside loop function createobjinforloopwithvardeclaredoutside() {     var starttime = date.now();    var obj; //object declared here memory allocation done 1 time     var targetarray = [];     for(var = 0; < 1000000; i++) {        obj = {};        obj.id = i;       obj.value = 'value :: ' + i;        targetarray.push(obj);    }    var endtime = date.now();    var timetaken = endtime - starttime;   console.log('time taken: ' + timetaken);  } 

time taken above program: 505 525 milliseconds

//case 2: object declared , defined inside loop each sprint function createobjinforloopwithvardeclaredinside() {     var starttime = date.now();     var targetarray = [];     for(var = 0; < 1000000; i++) {        var obj = {};        obj.id = i;       obj.value = 'value :: ' + i;        targetarray.push(obj);     }     var endtime = date.now();     var timetaken = endtime - starttime;    console.log('time taken: ' + timetaken); //486 509  } 

time taken above program: 486 509 milliseconds

can explain better approach optimize execution time? second approach declare object inside loop, concern may take longer run because every iteration, runtime has allocate memory new object may take longer. profiling data, seems second approach of declaring object inside loop better. in terms of scoping, personal favorite decalre variable when it's needed such huge loops, want @ various runtime optimizations.

i not sure if optimization needed in case if javascript optimizes code before running them.

both same. for loops don't create new scope variables hoisted top of containing function scope.

ex:

> undefined > (var = 0; < 5; i++) { var test = i; } undefined > 5 > test 4 

as can see, variables i , test hoisted global scope here. might want check out you don't know js: scopes & closures better understanding.


Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - .htaccess mod_rewrite for dynamic url which has domain names -

Website Login Issue developed in magento -