快速计算整数和数组的每个元素之和的方法

时间:2014-01-15 03:09:46

标签: java performance

我想优化下面非常简单的代码, 你有什么想法吗?

public void addValueToTab(int _valueToAdd){
    for(int k=0; k < myArray.length; k++){
        myArray[k]+= _valueToAdd;
    }
}

myArray是一个int []

myArray的长度可以在50到1000之间变化。

非常感谢你的帮助,

1 个答案:

答案 0 :(得分:5)

我敢打赌,使用服务器JVM和热门代码,你无法做任何事情来加速它(因为JVM已经完成了所有的优化)。特别是,myArray.length被缓存在局部变量中,并且循环被多次展开。

如果您关心使用较弱的JIT编译器的性能,您可以手动执行上述两项操作,但为什么要关心?

附注

有趣的是,有一个类似的循环,JVM非常松散:

for (int i = 0; i < value.length; i++) {
    h = 31 * h + val[i];
}

这不是一个不重要的代码,它是String.hashCode的主体。通过手动展开,您可以获得因子2 +的加速。