gpt4 book ai didi

java - 多次执行 if(false) 不好吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:05:13 24 4
gpt4 key购买 nike

如果我有一段这样的代码......

if(!hasRunMethod) {
runMethod();
hasRunMethod = true;
}

...并且该代码在循环中一遍又一遍地执行,每秒多次,即使内部代码只被调用一次,这是一种糟糕的编码习惯吗?如果是这样,我应该怎么做?

最佳答案

快速测试(在 Java 版本 1.8.0_05 上):

long start = System.nanoTime();
int run = 1_000_000;
for(int i = 0; i < run; ++i) {
if(alwaysTrue) {

}
}
long end = System.nanoTime();

end - start 平均约 1,820,000 纳秒。这个:

long start = System.nanoTime();
int run = 1_000_000;
for(int i = 0; i < run; ++i) {
// if(alwaysTrue) {
//
// }
}
long end = System.nanoTime();

end - start 平均约 1,556,000 纳秒。

作为额外的奖励:

long start = System.nanoTime();
int run = 1_000_000;
for(int i = 0; i < run; ++i) {
if(true) {

}
}
long end = System.nanoTime();

end - start 平均约 1,542,000 纳秒,与注释掉的相同。

结论

循环内的

if(someBool){} 对性能有一些影响。但它是如此微不足道,我发现很难想出一个足够敏感的瓶颈来影响它。

关于java - 多次执行 if(false) 不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25165981/

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