1

経過時間を見つけるためのきれいな方法を見つけようとしています。言い換えれば、コードの特定のセクションが実行されるのにかかる時間を見つけたいのです。

私は次の2つのアプローチを知っています:-

1>

long start = System.nanoTime();
// Code to measure
long elapsedTime = System.nanoTime() - start;

2>

long start = System.currentTimeMillis();
// Code to measure
long elapsedTime = System.currentTimeMillis() - start;

しかし、これらの 2 つのアプローチは、元のコードにベンチマーク コードを散らかさなければならず、後でベンチマークが終了したときに、忘れずにコードを削除しなければならないという意味で汚いものです。

ブレークポイントを指定するのと同じようにベンチマークしたいコードをマークし、コードのその部分に到達するたびにEclipseが経過時間を表示する、Eclipse/その他のIDEでサポートされているよりクリーンなアプローチを探しています。

Eclipse/他のIDEで利用できるそのような方法はありますか?

4

3 に答える 3

1

Perf4j をお勧めします perf4j.codehaus.org

于 2012-05-06T03:22:46.303 に答える
0

クラスの一番上にフィールドを設定する

private static final boolean DEBUG_THIS=true;

次に、使用したい行がある場合は、次のように入力します。

if (DEBUG_THIS){
    Log.v("Tag","It took " + System.currentTimeMillis() - start + " ms");
    // perhpas some other debug code
}

疲れたときやデバッグが終わったら、最初の 1 行のコードを変更します。

private static final boolean DEBUG_THIS=false;

それ以外の場合は、すべてのデバッグ コードを所定の位置に残しておくことができます。再度必要になった場合は、実行中のバージョンで何もコストがかかりません。

于 2012-05-05T15:12:16.980 に答える
0

コードの JUnit テストを作成できます。Eclipse 用の JUnit プラグインは、テストの実行にかかった時間を表示します。

于 2012-05-05T15:28:58.497 に答える