私のプログラムをEclipseで実行したいのですが、プログラムを実行するのにどれくらい時間がかかるか見たいと思っています。言い換えれば私は自分のプログラムの時間を決めたいと思う。私は、UNIXでは、コマンドライン上でコマンドの前に "time"という単語を置くことで、どの操作でも時間を計ることができることを知っています。しかし、私はEclipseで私の操作をどのように時間を計ることができるかもしれないのか分かりません。すべてをもっと明確にするために、私は新しい方法を書くのを避けたいと思います。私の設定パスにsthを追加する方法はありますか?どのように私はそうすることができるのか誰にも分かりますか?Javaでの操作のタイミング
0
A
答えて
1
5
あなたは2行のコードを追加し気にしない場合、あなたはJavaで純粋にこれを行うことができます:
public class Foo {
public static void main(String[] args) {
long ms = System.currentTimeMillis();
// do whatever
System.out.println(System.currentTimeMillis() - ms);
}
}
あなたがそれを必要とする場合にも、nanoTime
を使用することができます。
0
はあなたのコードのどこかでこのクラスを置く:
package your.package.name.common;
import org.apache.log4j.Logger;
import java.util.concurrent.TimeUnit;
public class CProfile {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(CProfile.class);
public static final int SECONDS_TO_ALERT = 2;
public static void slownessAlert(long startTime, String name) {
long seconds = TimeUnit.SECONDS.convert(System.nanoTime() - startTime, TimeUnit.NANOSECONDS);
if (seconds>SECONDS_TO_ALERT){
logger.warn("slow method detected: "+name+" "+seconds+"s");
}
}
}
は、その後、次の方法であなたのコード内でこのスニペットを使用します。それが起こるとき
public void something() {
long startTime = System.nanoTime();
//SOME HEAVY COMPUTATIONS
CProfile.slownessAlert(startTime, "something");
}
それは遅さについてお知らせします(SECONDS_TO_ALERT> 2S )。
0
eclipseがウェブアプリケーションの場合は、speed-tracerプラグインを追加してください。これは、すべての時間を見つけるのに役立ちます。
0
これを実行して結果が得られることを保証する簡単な方法は、メインクラスの上部に次の行を追加することです。このコードは、アプリケーションの開始時間を保存し、JVMシャットダウン時の起動時間を記録して印刷するJVMシャットダウンフックを追加します。
final static long startTime = System.currentTimeMillis();
static {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
System.out.println("My program ran for "+(System.currentTimeMillis()-startTime)+" seconds.");
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
関連する問題
- 1. ImageViewのJavaでの操作
- 2. Javaでのファイル操作
- 3. Javaのユニコード操作
- 4. Javaの基本タイミング
- 5. Java XML操作
- 6. JAVAバイト操作
- 7. javaバイナリファイル操作
- 8. Pythonでのファイル操作Javaでのトリガー
- 9. Javaのロング - ビットの操作
- 10. Javaパフォーマンス・タイミング・ライブラリ
- 11. タイミングJavaバブルソートアルゴリズム
- 12. Javaでの次のPDF操作
- 13. OrientDBのJavaでの同時グラフ操作
- 14. javaでの文字列の操作
- 15. Javaでのファイル操作のトランザクションモード
- 16. フレームとJava AWTの操作
- 17. Java Webサービスの操作
- 18. Java LinkedListノードの操作
- 19. Javaバイト配列の操作
- 20. Javaビット操作の問題
- 21. Javaノンブロッキングソケットのフラッシュ操作
- 22. Javaストリーム間の操作
- 23. Javaストリームのリスト操作
- 24. データ型操作Java
- 25. Java用FileReader操作
- 26. Java:日付操作
- 27. Javaの日付操作ですか?
- 28. postgresとjavaでのスパーク挿入操作
- 29. Dataflow Java SDKでのBigQueryパッチ操作
- 30. Javaでのウィンドウ操作通知
本当にeclipseを実行する必要がありますか?ターミナルで走らせてみませんか? –
プロファイラが必要です。 –
私は窓のマシンを持っている、私はそうすることはできますか?私が窓のターミナルでそれを走らせることができれば、どうすればいいのか、親切に教えてくれますか? – BBB