0

我手里有一个 java 类文件,可以简单地从 windows cmd 运行它来查看输出。我只需要根据不同的输入参数观察这个java程序的运行时间。我没有源代码,所以我无法修改它来为我生成运行时间。请提出可能的出路来观察这一点。提前致谢。

4

3 回答 3

1

将它包装在另一个类中并运行它。例如,如果您的类(您没有代码)被称为 Runner,那么您当前可能正在运行它

java -jar jarContainingRunner.jar Runner

如果您创建另一个然后调用 Runner 的类,您可以在该类中执行任何操作。例如,您可以调用类 InstrumentedRunner。

public class InstrumentedRunner {

   public static void main(String... arg) {
       long start = System.currentTimeMillis();
       new Runner().run();
       long dur = System.currentTimeMillis() - start;
       System.out.format("Runner took %s milliseconds", dur);
   }
}

(我没有测试上面的代码。)

然后你可以运行

java -jar jarContainingRunner.jar;jarContainingInstrumentedRunner.jar instrumentedRunner

然后它将运行 Runner 的 run 方法(假设这是您想要计时的方法)并输出它所花费的时间。

于 2012-09-11T10:11:05.963 回答
0

你可以做的是你可以编写一个批处理文件,在那里你可以调用你的java类,但在此之前将开始时间保存在变量中,然后在类结束subtract之后用开始时间完成它。

于 2012-09-11T10:13:00.630 回答
0

您可以编写一个简单的 Java 程序来观察这一点。在新代码中使用运行时执行并观察执行时间。

此新代码的示例概述:

//... before your class runs.
Runtime.getRuntime().exec("java -jar yourClass"); 
//... after your class runs.
于 2012-09-11T10:14:01.610 回答