public class StopWatch extends ObjectSE
System.nanoTime()SE の使用を隠蔽し、アプリケーションコードの可読性を向上させ、計算エラーの可能性を減らします。
このオブジェクトはスレッドセーフに設計されておらず、同期を使用しないことに注意してください。
このクラスは通常、本番アプリケーションの一部としてではなく、概念実証作業中および開発中のパフォーマンスを検証するために使用されます。
Spring Framework 5.2 の時点で、実行時間はナノ秒単位で追跡および報告されます。
| 修飾子と型 | クラスと説明 |
|---|---|
static class | StopWatch.TaskInfoStopWatch 内で実行される 1 つのタスクに関するデータを保持するネストされたクラス。 |
| コンストラクターと説明 |
|---|
StopWatch() 新しい StopWatch を作成します。 |
StopWatch(StringSE id) 指定された ID で新しい StopWatch を構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
StringSE | currentTaskName() 現在実行中のタスクがあれば、その名前を取得します。 |
StringSE | getId() 構築時に指定された、この StopWatch の ID を取得します。 |
StopWatch.TaskInfo | getLastTaskInfo() 最後のタスクを StopWatch.TaskInfo オブジェクトとして取得します。 |
StringSE | getLastTaskName() 最後のタスクの名前を取得します。 |
long | getLastTaskTimeMillis() 最後のタスクにかかった時間をミリ秒単位で取得します。 |
long | getLastTaskTimeNanos() 最後のタスクにかかった時間をナノ秒単位で取得します。 |
int | getTaskCount() 時間指定されたタスクの数を取得します。 |
StopWatch.TaskInfo[] | getTaskInfo() 実行されたタスクのデータの配列を取得します。 |
long | getTotalTimeMillis() すべてのタスクの合計時間をミリ秒単位で取得します。 |
long | getTotalTimeNanos() すべてのタスクの合計時間をナノ秒単位で取得します。 |
double | getTotalTimeSeconds() すべてのタスクの合計時間を秒単位で取得します。 |
boolean | isRunning() この StopWatch が現在実行されているかどうかを確認します。 |
StringSE | prettyPrint() 実行されたすべてのタスクを説明するテーブルを含む文字列を生成します。 |
void | setKeepTaskList(boolean keepTaskList)StopWatch.TaskInfo 配列を長期的に構築するかどうかを構成します。 |
StringSE | shortSummary() 総実行時間の簡単な説明を取得します。 |
void | start() 名前のないタスクを開始します。 |
void | start(StringSE taskName) 名前付きタスクを開始します。 |
void | stop() 現在のタスクを停止します。 |
StringSE | toString() 実行されたすべてのタスクを説明する有益な文字列を生成します |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEpublic StopWatch()
StopWatch を作成します。タスクを開始しません。
public StopWatch(StringSE id)
StopWatch を構築します。ID は、複数のストップウォッチからの出力があり、区別する必要がある場合に便利です。
タスクを開始しません。
id - このストップウォッチの識別子 public StringSE getId()
StopWatch の ID を取得します。StopWatch(String)public void setKeepTaskList(boolean keepTaskList)
StopWatch.TaskInfo 配列を長期的に構築するかどうかを構成します。 数百万の間隔で StopWatch を使用する場合は、これを false に設定します。そうしないと、TaskInfo 構造体が過剰なメモリを消費します。
デフォルトは true です。
public void start()
throws IllegalStateExceptionSE このメソッドを最初に呼び出さずに stop() またはタイミングメソッドが呼び出された場合の結果は未定義です。
IllegalStateExceptionSEstart(String), stop()public void start(StringSE taskName) throws IllegalStateExceptionSE
このメソッドを最初に呼び出さずに stop() またはタイミングメソッドが呼び出された場合の結果は未定義です。
taskName - 開始するタスクの名前 IllegalStateExceptionSEstart(), stop()public void stop()
throws IllegalStateExceptionSEstart() / stop() メソッドのペアを少なくとも 1 つ呼び出さずにタイミングメソッドが呼び出された場合、結果は未定義です。
IllegalStateExceptionSEstart(), start(String)public boolean isRunning()
StopWatch が現在実行されているかどうかを確認します。currentTaskName()@Nullable public StringSE currentTaskName()
isRunning()public long getLastTaskTimeNanos()
throws IllegalStateExceptionSEIllegalStateExceptionSEgetLastTaskTimeMillis()public long getLastTaskTimeMillis()
throws IllegalStateExceptionSEpublic StringSE getLastTaskName() throws IllegalStateExceptionSE
public StopWatch.TaskInfo getLastTaskInfo() throws IllegalStateExceptionSE
StopWatch.TaskInfo オブジェクトとして取得します。public long getTotalTimeNanos()
getTotalTimeMillis(), getTotalTimeSeconds()public long getTotalTimeMillis()
public double getTotalTimeSeconds()
public int getTaskCount()
public StopWatch.TaskInfo[] getTaskInfo()
public StringSE shortSummary()
public StringSE prettyPrint()
カスタムレポートの場合は、getTaskInfo() を呼び出して、作業情報を直接使用します。
public StringSE toString()
カスタムレポートの場合は、getTaskInfo() を呼び出して、作業情報を直接使用します。
ObjectSE の toStringSE