还是那个原则,越近的变量越快,如果在寄存器上就更好。把成员数组拆分成多个成员变量有时候可以提高速度。类似的,把成员数据复制到局部变量,有时候性能也能大幅提高。例如
int _v = 0;
void foo1()
{
for (int i = 0; i < 10000; i++)
{
_v++; _v++; _v++; _v++;
}
}
void foo2()
{
int v = _v;
for (int i = 0; i < 10000; i++)
{
v++; v++; v++; v++;
}
_v = v;
}
foo2的比foo1快上10倍是不足为奇的。
同样道理,把成员数组的引用复制到局部变量,性能也能大幅提高。
简单一句话,局部变量比成员字段,静态字段都要快很多。
技术讨论的QQ群: 2514097 或 10987609