【问题标题】:How to calculate the running time of method in java?如何计算java中方法的运行时间?
【发布时间】:2018-03-26 11:13:58
【问题描述】:

如何让我的程序在用户单击 JButton 后计算方法的运行时间,直到结果显示在 JTextBox 中?我不希望整个程序运行时间。谢谢 代码是这样的。我在最后一行有另一个错误(long 不能转换为字符串)。我可以做些什么来在 jtextbox 中设置结果? 它仍然计算整个运行时间。我想要的是只计算加密时间来比较不同的密钥。

     long startTime = System.currentTimeMillis();
     byte[]  plain = plaintext.getText().getBytes();
     byte[] K = key.getText().getBytes();
     byte[] encrypted = encrypt(plain, K);
     String a = bytesToHex(encrypted);
     encryptedtext.setText(a);

    long stopTime = System.currentTimeMillis();
    long elapsedTime = stopTime - startTime;
    time.setText(elapsedTime);

【问题讨论】:

  • 你试过只是......测量它吗?有很多内置方法可以获取当前时间。只需在前后盖章并计算差异即可。
  • 试试System.currentTimeMillis()
  • @Ben 我试过了。但它会计算整个运行时间。前后如何盖章?
  • 在开始代码的“我想测量这个”部分之前获取时间戳。而在它之后。我真的不明白你怎么能想到做不同的事情。
  • @ays 我们都看不到您的代码。我们不知道您尝试了什么或为什么它不起作用。由于我们没有您的代码,我们无法准确告诉您要在哪里添加哪些行。

标签: java user-interface netbeans runtime


【解决方案1】:

通过计算 startTime 和 endTime

的简单方法
public void someMethod() {
    long startTime = System.currentTimeMillis();

    // Your actual code

    long endTime = System.currentTimeMillis();
    long totalTime = endTime - startTime;

    System.out.println("Total Time :: " + totalTime + "ms");
}

要将long转换为String,请使用此函数String.valueOf(long)

【讨论】:

  • 我的代码的样子。代码将从按钮外部调用方法的问题。我注意到它计算了整个运行时间
  • 如果你发布一些示例代码会更好,比如你的调用方法在哪里。
  • @ays 你只想计算这个方法的时间,对吧? byte[] encrypted = encrypt(plain, K); 然后在该行之前插入startTime 代码。
  • 是的。太感谢了。但另一个问题是,当我输入相同的文本和相同的键时,它给出的时间并不完全相同:(我的代码可能有问题还是没问题?
  • @ays 每个输入的时间可能非常取决于性能(我们可以说取决于内存,CPU 进程之类的)。所以你的代码没有错。
【解决方案2】:
 Stopwatch timer = new Stopwatch().start();

 //your code

  timer.stop();
  System.out.println(timer.getElapsedTime());

  long startTime = System.currentTimeMillis();

//your code

  long stopTime = System.currentTimeMillis();
  long elapsedTime = stopTime - startTime;
  System.out.println(elapsedTime);

}

【讨论】:

【解决方案3】:
long start = System.nanoTime();
callToYourMethod();
long end = System.nanoTime();
System.out.println(end - start);

【讨论】:

  • 还是一样的结果 :(
猜你喜欢
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多