gpt4 book ai didi

java - 准确计时函数运行所需的时间

转载 作者:行者123 更新时间:2023-12-01 14:51:33 25 4
gpt4 key购买 nike

我正在尝试记录将特定数量的字符串入队和出队到链表队列所需的时间。

如果我手动设置字符串数量,则每次运行程序时都会返回或多或少相同的运行时间。

但是,如果我要求用户输入(如下所示),并输入相同的数字,则程序大多数时候运行时间会增加两倍。我不明白这是如何发生的,因为直到调用排队和出队函数之前我才启动计时器。

public static void main(String[], args){
long start, elapsed;
int num = Integer.parseInt(javax.swing.JOptionPane.showInputDialog("State the number of elements to queue:"));
System.out.println("Processing " + num + " strings...");

Queue lq = new LinkedQueue();

// timing section
start = System.nanoTime();
testQueue(num, lq);
elapsedTime = System.nanoTime() - start;
}

有谁知道为什么会这样吗?

最佳答案

您期望确定性行为,并且我猜您正在具有正常操作系统的 PC 上运行该程序。因此不可能期望准确的时间,主要是因为:

  1. 您正在运行一个虚拟机来执行 Java 代码
  2. VM 在操作系统中运行。

虚拟机会执行您无法控制的操作,操作系统也是如此。因此,除非您在适当的环境中运行程序,否则您只能粗略地猜测程序将花费多少时间来执行。

垃圾收集器可能会在程序执行过程中中断您的程序,或者调度程序可能会为您安排另一个更重要的进程,等等。

关于java - 准确计时函数运行所需的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14789646/

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