Friday, May 10, 2024
29
rated 0 times [  35] [ 6]  / answers: 1 / hits: 48158  / 15 Years ago, sat, october 10, 2009, 12:00:00

I was browsing Google Code when I chanced upon this project called JSpeed - optimization for Javascript.



I noticed one of the optimization was to change i++ to ++i in for loop statements.



Before Optimization



for (i=0;i<1;i++) {}

for (var i = 0, j = 0; i < 1000000; i++, j++) {
if (i == 4) {
var tmp = i / 2;
}

if ((i % 2) == 0) {
var tmp = i / 2;
i++;
}
}
var arr = new Array(1000000);
for (i = 0; i < arr.length; i++) {}


After optimization



for(var i=0;i<1;++i){}
for(var i=0,j=0;i<1000000;++i,++j){if(i==4){var tmp=i>>1;}
if((i&1)==0){var tmp=i>>1;i++;}}
var arr=new Array(1000000);for(var i=0,arr_len=arr.length;i<arr_len;++i){}


I know what pre and post increments do, but any idea how does this speeds the code up?


More From » optimization

 Answers
162

This is what I read and could answer your question: preincrement (++i) adds one to the value of i, then returns i; in contrast, i++ returns i then adds one to it, which in theory results in the creation of a temporary variable storing the value of i before the increment operation was applied.


[#98536] Wednesday, October 7, 2009, 15 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
hailie

Total Points: 25
Total Questions: 112
Total Answers: 111

Location: Belize
Member since Tue, Dec 8, 2020
3 Years ago
;