gpt4 book ai didi

java - 为什么第一次调用构造函数花费的时间比其他调用多 10 倍?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:28:48 35 4
gpt4 key购买 nike

class testx
{
public testx()
{
long startTime = System.nanoTime();
System.out.println((System.nanoTime() - startTime));
}

public static void main(String args[])
{
new testx();
new testx();
new testx();
}
}

我总是得到类似于此 7806 660 517 的结果。为什么第一次调用比其他调用花费的时间多 10 倍?

最佳答案

因为此时 JVM 第一次加载了一堆类。一旦第一个 System.nanoTime() 返回,您已经加载了 System.classtestx.class,但是一旦 System. out.println 出现了,我怀疑加载了很多 I/O 类,这需要一些时间。

无论如何,这不是一个好的基准测试技术;在开始测量之前,您真的应该通过运行约 10000 次迭代来预热 JIT。或者(最好)使用预构建的基准测试工具,如 Caliper .

关于java - 为什么第一次调用构造函数花费的时间比其他调用多 10 倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012377/

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