0

手元にJavaクラスファイルがあり、Windowscmdから実行して出力を表示できます。さまざまな入力パラメータに応じて、この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 に答える