Tuesday, 13 August 2013

Performance tips questions

Performance tips questions

public void zero() {
int sum = 0;
for (int i = 0; i < mArray.length; ++i) {
sum += mArray[i].mSplat;
}
}
public void one() {
int sum = 0;
Foo[] localArray = mArray;
int len = localArray.length;
for (int i = 0; i < len; ++i) {
sum += localArray[i].mSplat;
}
}
According to Android documentation, in above code, zero is slower. But I
don't understand why ? well I haven't learn that much deep but as I know
length is a field not method. So when loop retrieves its value, how its
different from retrieving from local variable ? and array length is always
fixed once initialized. What am I missing ?

No comments:

Post a Comment