Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在循环传输时使用tmp变量的缺点_Java - Fatal编程技术网

Java 在循环传输时使用tmp变量的缺点

Java 在循环传输时使用tmp变量的缺点,java,Java,我正在为我的java应用程序进行一些性能优化,对于使用tmp变量删除循环终止中的方法调用感到困惑。以下是我的情况: Vector myVector = new Vector(); // some code for (int i=0;i<myVector.size();i++){ //some code here; } Vector myVector=new Vector(); //一些代码 对于(int i=0;i而言,这种变化不会对绩效产生任何明显的影响,无论是积极的还是消极的。因此,

我正在为我的java应用程序进行一些性能优化,对于使用tmp变量删除循环终止中的方法调用感到困惑。以下是我的情况:

Vector myVector = new Vector();
// some code
for (int i=0;i<myVector.size();i++){
//some code here;
}
Vector myVector=new Vector();
//一些代码

对于(int i=0;i而言,这种变化不会对绩效产生任何明显的影响,无论是积极的还是消极的。因此,只要没有深刻的理由,就不应该改变这种情况

关于你的问题

使用第二种场景会有什么负面影响

您应该知道,在多线程环境中,这两种实现的行为可能不同。在第一种情况下,将考虑任何其他线程对向量所做的更改,并可能影响循环的运行次数。在第二种情况下,循环的运行次数计算一次,并且不会更改然而,在使用两个循环中的任何一个循环对向量进行迭代时,更改向量的内容是危险的,如果可能的话,应该避免


顺便说一句:在@geo的评论中链接的基准与微基准一样有缺陷。这并不能告诉你任何事情。

谢谢你的建议,我将学习优化教程的第一条规则:在你分析了你的应用程序之前,不要这样做,看看瓶颈在哪里。基准是没有问题的这并不容易,链接的网站可以用它的基准做得更好。第一条优化规则:不要优化。第二条优化规则(仅限专家!):暂时不要优化。非常感谢@Marco13。一个非常好和清晰的解释。我只是不知道为什么这个问题会被否决。@Ashish有类似的问题(,…),也许有人应该把它标记为“可能的重复”。然而,它是否会产生“负面影响”的问题也可以指我提到的可能的不同行为,所以…现在它将是+/-0;-)
int tmp = myVector.size();
for(int i=0;i<tmp;i++){
//some code here
}