gpt4 book ai didi

java - Scala 与 Java 中的循环展开

转载 作者:行者123 更新时间:2023-12-02 03:03:54 25 4
gpt4 key购买 nike

循环展开是否适用于在运行时确定迭代计数的循环?例如。在此代码中将考虑展开内部循环:

for(int j = 0; j < HUGE_NUMBER; j++) {
int N = getCount(); // say N = 5
for(int i = 0; i < N; i++) {
doSomething(i);
}
}

Scala 中循环展开的工作方式是否不同? JIT 编译器会以同样的方式处理以下代码片段吗?

// Java
int N = getCount();
for(int i = 0; i < N; i++) {
doSomething(i);
}

// Scala
val N = getCount();
var i = 0
while(i < N) {
doSomething(i);
i+=1
}

最佳答案

JIT 编译器适用于 Java 字节码,因此展开行为独立于原始语言,并且取决于正在使用的特定 JVM/编译器。

我不相信 Scala 编译器实现了自己的循环展开。在 Scala 中使用这种计数循环的情况相当罕见,因此可能不值得对其进行优化。

关于java - Scala 与 Java 中的循环展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57033473/

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