gpt4 book ai didi

java - Java 中的持续时间差异

转载 作者:行者123 更新时间:2023-12-02 00:11:29 24 4
gpt4 key购买 nike

Possible Duplicate:
Java: how much time does an empty loop use?

看看以下内容:

for (int j = 0 ; j < 5 ; j++) {     
long t1 = System.currentTimeMillis();
for (int i = 0 ; i < 10000000 ; i++)
; // intentionally empty
long t2 = System.currentTimeMillis();
System.out.println (t2 - t1);
}

输出(多种可能的输出之一):

2
11
0
0
0

如果多次运行该程序,您会发现输出的前两个数字始终非零,而所有其他数字实际上都是 0。此外,第二个数字通常好像比第一个高。即使我们循环得更高,这似乎也成立,直到 j < 100这有什么具体原因吗?当然,一般来说,毫秒可能不会产生太大的差异,但我只是很好奇。

最佳答案

第二个循环是空的,可以优化掉。由于 JVM 需要一些时间来认识到这一事实,因此一开始并没有这样做。也许优化的时间花在第二次运行上。

关于java - Java 中的持续时间差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12738956/

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