以前是用C/C++的,对于数组循环都是for(int i=0; i<n; i++) .... 因为c的数组没有任何附加信息就是一个首地址。现在开始用java和c#,一开始喜欢写 for(int i=0; i< ar.Length; i++)... 这样的代码。现在发现取数组长度的属性是有额外消耗的。如下代码
这段代码在我的机器上执行结果如下
time is 62.5
time is 31.25
也就是说取数组长度属性相当于做一次额外的浮点乘法。积累起来这个开销还是很大的。所以应该在循环开始先把长度取出来存到变量中再循环。