gpt4 book ai didi

java - 同一条语句的运行时间在 Java 中差异如此之大

转载 作者:行者123 更新时间:2023-11-29 03:23:37 24 4
gpt4 key购买 nike

我只是用 java 写了一个程序来测试执行 myQsort 所花费的时间。
部分代码如下所示:

long t1 = System.currentTimeMillis();
new sort().myQsort(a, 0, 100000 - 1);
long t2 = System.currentTimeMillis();


我将语句循环五次以获得五个 timeSpent (t2-t1) 并将它们打印出来,但结果很奇怪,每次第一次 timeSpent 都比其余的大


Java 中的快速排序:
第一轮:30ms
第二轮:9ms
第三轮:9ms
第 4 轮:11 毫秒
第五轮:9ms
平均耗时:13ms


我试过以不同的顺序读取 5 个输入文件,甚至读取同一个文件 5 次。但结果都是相似的。我也尝试在另一台计算机上运行代码,但结果仍然相同。

谁能解释为什么会这样?


问题已解决感谢所有的回答,我已经尝试将 -Xint 添加到 VM 设置(以关闭 JIT),这次一切都很好。


Java 中的快速排序:
第一轮:61ms
第二轮:68ms
第三轮:72ms
第 4 轮:73 毫秒
第 5 轮:59 毫秒
平均耗时:66ms


再次感谢您的所有回答,它帮助很大:)

最佳答案

第一次运行是冷启动,即Java第一次加载程序代码和自己的代码。

第二次已经在内存中了。如您所见,第一次后时间变化不大。

此外,毫秒数可能因发生的事件而异。例如有东西通过网络发送给你,你的操作系统需要修改一个重要的表等。

关于java - 同一条语句的运行时间在 Java 中差异如此之大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213071/

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