gpt4 book ai didi

Java : Counting so fast?

转载 作者:行者123 更新时间:2023-12-02 10:13:12 27 4
gpt4 key购买 nike

我的电脑中的这段代码在java中执行了1秒,但在C中执行了20多秒。java是如何执行的?

int a[] = new int[50000] ; 
for(int i = 0 ; i < 50000 ; i++) {
for(int j = 0 ; j < 200000 ; j++) a[i] = j - i ;
}

最佳答案

Java 发现您的代码没有执行任何操作,并对其进行优化以更快地执行任何操作(如注释所示)。当我按原样运行代码时,它在 0.33 秒内完成。通过这个简单的更改,需要 17 秒:

public class Test {
public static volatile int b;

public static void main(String[] args) {
int a[] = new int[50000] ;
for(int i = 0 ; i < 50000 ; i++) {
for(int j = 0 ; j < 200000 ; j++) {
a[i] = j - i ;
b = a[i];
}
}
}
}

由于 b 是 volatile 的,运行时无法再优化掉未使用的分配。在我看来,微基准测试几乎毫无用处,因为现实世界的结果取决于许多不同的因素,但了解 JVM 的工作原理总是好的!

关于Java : Counting so fast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54850994/

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