public class StopWatch extends ObjectSE
System.nanoTime()
SE の使用を隠蔽し、アプリケーションコードの可読性を向上させ、計算エラーの可能性を減らします。
このオブジェクトはスレッドセーフに設計されておらず、同期を使用しないことに注意してください。
このクラスは通常、本番アプリケーションの一部としてではなく、概念実証作業中および開発中のパフォーマンスを検証するために使用されます。
Spring Framework 5.2 の時点で、実行時間はナノ秒単位で追跡および報告されます。
修飾子と型 | クラスと説明 |
---|---|
static class | StopWatch.TaskInfo StopWatch 内で実行される 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, waitSE
public 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()
またはタイミングメソッドが呼び出された場合の結果は未定義です。
IllegalStateExceptionSE
start(String)
, stop()
public void start(StringSE taskName) throws IllegalStateExceptionSE
このメソッドを最初に呼び出さずに stop()
またはタイミングメソッドが呼び出された場合の結果は未定義です。
taskName
- 開始するタスクの名前 IllegalStateExceptionSE
start()
, stop()
public void stop() throws IllegalStateExceptionSE
start()
/ stop()
メソッドのペアを少なくとも 1 つ呼び出さずにタイミングメソッドが呼び出された場合、結果は未定義です。
IllegalStateExceptionSE
start()
, start(String)
public boolean isRunning()
StopWatch
が現在実行されているかどうかを確認します。currentTaskName()
@Nullable public StringSE currentTaskName()
isRunning()
public long getLastTaskTimeNanos() throws IllegalStateExceptionSE
IllegalStateExceptionSE
getLastTaskTimeMillis()
public long getLastTaskTimeMillis() throws IllegalStateExceptionSE
public 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