gpt4 book ai didi

java - 是否最好预先计算 for 循环的条件语句部分?

转载 作者:行者123 更新时间:2023-12-01 07:45:18 25 4
gpt4 key购买 nike

例如

int offset = getOffset();
int count = getCount();
int limit = count + offset;
for (int i; i < limit; i++) {}

更可取
int offset = getOffset();
int count = getCount();
for (int i; i < offset + count; i++) {}

如果 Java VM 在每次迭代时都进行加法,这听起来是相当大的开销。但如果编译器足够聪明,可以将添加限制为单次,我希望保持代码简短。

最佳答案

Premature optimization is the root of all evil.

现在不用担心这个。

<小时/>

当您将加法部分从循环中提取出来时,它确实只会被评估一次。有些编译器可能足够聪明,可以对此进行优化,但有些编译器可能不会。

几乎所有 CPU 执行 32 位整数加法所需的时间非常小。如果您使用分析器并发现 for 循环条件确实导致性能问题,那么您应该删除添加内容并看看它是否有帮助。但是,当您甚至没有/还没有发现问题时,担心它是没有意义的。

<小时/>

所以现在,根据你的想法编写代码。例如,对我来说,如果我想“现在我需要重复这个(偏移+计数)次......”,我会写

for (int i = 0 ; i < offset + count ; i++)

如果我在想“现在我需要计算我们循环多少次,然后我会循环那么多次”,那么我会写:

int limit = offset + count;
for (int i = 0 ; i < limit ; i++)

关于java - 是否最好预先计算 for 循环的条件语句部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53976196/

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