0

我正在尝试测量执行时间,但我不知道在哪里,但该方法是在 try 块之前还是在内部?

ublic static void main(String[] args) {
    long startTime = System.currentTimeMillis();

    try {

        SearchDetailsDialog dialog = new SearchDetailsDialog(null);
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        dialog.setVisible(true);
    } catch (Exception e) {
        e.printStackTrace();
    }long endTime   = System.currentTimeMillis();
    long totalTime = ((endTime - startTime)/1000);
    System.out.println("the execution time is:");
    System.out.println(totalTime);
}
4

3 回答 3

1

两者都不。在你的情况下,最好的是:

long startTime= System.nanoTime() ;
try {
    SearchDetailsDialog dialog = new SearchDetailsDialog(null);
    dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    dialog.setVisible(true);
} catch (Exception e) {
    e.printStackTrace();
} finally {
    long endTime= System.nanoTime() ;
    double totalTime= ((double)(endTime - startTime)/1000000000) ;
    System.out.printf("the execution time is: %.3f seconds",totalTime);
}
于 2013-08-23T23:31:39.957 回答
0

将此代码放在 finally 块中:

long endTime   = System.currentTimeMillis();
    long totalTime = ((endTime - startTime)/1000);
    System.out.println("the execution time is:");
    System.out.println(totalTime);
于 2013-08-23T23:30:49.920 回答
0

如果可用,同意 nanoTime() 但我会将开始和停止时间捕获放在 try 和 catch 之间,该机制也需要一些时间。或者,您可以在两个点(catch 块内的第二个)捕获停止时间.. println() 任何地方...

于 2013-08-23T23:40:07.090 回答