gpt4 book ai didi

java - 变量性能 - java

转载 作者:行者123 更新时间:2023-12-01 06:43:13 25 4
gpt4 key购买 nike

所以我有一个应用程序需要进行大量数学运算,因此存在大量临时变量。我想知道的是:当我在循环之前声明变量然后重用它(代码1)时,是否有任何性能差异,或者在循环内声明它(代码2)更好?仅在循环内部需要该变量,且 n可达数万。或者将它们作为全局变量更好?该循环也被多次调用。

代码1:

double temp;
for (int i = 0; i < n; i++) {
temp = ...;
}

代码2:

for (int i = 0; i < n; i++) {
double temp = ...;
}

感谢您的提示。

最佳答案

不,性能上没有区别。 (无论是计算方面还是内存方面。)声明不会在运行时“执行”。

事实上,以下两个片段生成完全相同的字节码:

// Snippet 1                        // Snippet 2
int i; int i;
double temp; for (i = 0; i < 5; i++) {
for (i = 0; i < 5; i++) { double temp = i;
temp = i; }
}

// Generates // Generates

0: iconst_0 0: iconst_0
1: istore_1 1: istore_1
2: iload_1 2: iload_1
3: iconst_5 3: iconst_5
4: if_icmpge 16 4: if_icmpge 16
7: iload_1 7: iload_1
8: i2d 8: i2d
9: dstore_2 9: dstore_2
10: iinc 1, 1 10: iinc 1, 1
13: goto 2 13: goto 2

所以,这应该可以回答您有关性能的问题。

现在,我仍然会选择第二种方法,因为它限制了 temp 的范围,即它对命名空间的干扰最少。

关于java - 变量性能 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29371995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com