std.perf
プラットフォーム非依存の、パフォーマンス測定用クラスです。PerformanceCounter がメインのプラットフォーム非依存タイマークラスです。 経過 wall-clock 時間を計測する際の典型的な使い方をカバーしています。
このモジュールでは他に、特殊なケースで有用な Windows 専用のタイマーを提供しています。
Synopsis:
alias PerformanceCounter.interval_t interval_t; auto timer = new PerformanceCounter; timer.start(); // ここで計算 timer.stop(); interval_t elapsedMsec = timer.milliseconds; writefln("Time elapsed: %s msec", elapsedMsec);経過時間を問い合わせる前に stop() を呼ぶことに注意してください。
このクラスは STLSoft C++ libraries から D に移植されたものです。STLSoft 版に関する記事が Windows Develper Network の May 2003 号の記事 " Win32 Performance Measurement Options" にあります。 Source:
std/perf.d
Author:
Matthew Wilson
- ホストマシンで利用可能なもっとも高精度の測定APIを使用したパフォーマンスカウンタです。
Linux では、実装は gettimeofday() を使っています。 Windows では、可能な場合は QueryPerformanceCounter()、 それ以外では GetTickCount() を使用します。
- 測定時間を表現する型 (一般には、64-bit 符号付き整数)
- 測定開始
測定区間の開始を宣言します。
- 測定終了
測定区間の終端を宣言します。 経過時間を period_count, seconds, milliseconds, or microseconds. で問い合わせる前に呼び出す必要があります。
stop() は、改めて start() を呼び出すことなしに複数回呼ぶことができます。 経過時間は常に、一番最近の start() と一番最近の stop() の間の時間となります。
- 測定区間の経過時間カウンタ
マシン固有の単位で経過時間をカウントした量を返します。
- 測定区間の経過秒数
秒単位で、経過時間の長さを返します。
- 測定区間の経過ミリ秒数
ミリ秒単位で、経過時間の長さを返します。
- 測定区間の経過マイクロ秒数
マイクロ秒単位で、経過時間の長さを返します。
- 低コスト低精度のパフォーマンスカウンタです。
このクラスは、低精度ですがレイテンシの小さいパフォーマンス測定を実現します。
Windows でのみ使用可能です。 Windows 環境では全ての環境で意味のある動作をすることが保証されています。
- 区間を表す型
測定時間を表現する型 (一般には、64-bit 符号付き整数)
- 測定開始
測定区間の開始を宣言します。
- 測定終了
測定区間の終端を宣言します。 経過時間を period_count, seconds, milliseconds, or microseconds. で問い合わせる前に呼び出す必要があります。
stop() は、改めて start() を呼び出すことなしに複数回呼ぶことができます。 経過時間は常に、一番最近の start() と一番最近の stop() の間の時間となります。
- 測定区間の経過時間カウンタ
マシン固有の単位で経過時間をカウントした量を返します。
- 測定区間の経過秒数
秒単位で、経過時間の長さを返します。
- 測定区間の経過ミリ秒数
ミリ秒単位で、経過時間の長さを返します。
- 測定区間の経過マイクロ秒数
マイクロ秒単位で、経過時間の長さを返します。
- スレッド固有のパフォーマンス測定のために提供されるカウンタです。
このクラスは、OS のパフォーマンスモニタ機能を利用して、 システム上の他のスレッドの動作に左右されず呼び出しスレッドが使った時間を測定します。 スレッド固有モニタを持たないOSでは、 このクラスは意味のある値を返しません。
Windows でのみ使用可能です。
- 区間を表す型
測定時間を表現する型 (一般には、64-bit 符号付き整数)
- this();
- コンストラクタ
クラスのインスタンスを作成し、 インスタンスが作成されたスレッドのパフォーマンスを測るためにスレッドトークンを記録します。
- 測定開始
測定区間の開始を宣言します。
- 測定終了
測定区間の終端を宣言します。 経過時間を period_count, seconds, milliseconds, or microseconds. で問い合わせる前に呼び出す必要があります。
stop() は、改めて start() を呼び出すことなしに複数回呼ぶことができます。 経過時間は常に、一番最近の start() と一番最近の stop() の間の時間となります。
- カーネルモードでの経過時間カウンタ
マシン固有の単位でカーネルモードでの経過時間をカウントした量を返します。
- 測定区間のカーネルモードでの経過秒数
秒単位で、カーネルモードでの経過時間の長さを返します。
- 測定区間のカーネルモードでの経過ミリ秒数
ミリ秒単位で、カーネルモードでの経過時間の長さを返します。
- 測定区間のカーネルモードでの経過マイクロ秒数
マイクロ秒単位で、カーネルモードでの経過時間の長さを返します。
- ユーザーモードでの経過時間カウンタ
マシン固有の単位でユーザーモードでの経過時間をカウントした量を返します。
- 測定区間のユーザーモードでの経過秒数
秒単位で、ユーザーモードでの経過時間の長さを返します。
- 測定区間のユーザーモードでの経過ミリ秒数
ミリ秒単位で、ユーザーモードでの経過時間の長さを返します。
- 測定区間のユーザーモードでの経過マイクロ秒数
マイクロ秒単位で、ユーザーモードでの経過時間の長さを返します。
- 測定区間の経過時間カウンタ
マシン固有の単位で経過時間をカウントした量を返します。
- 測定区間の経過秒数
秒単位で、経過時間の長さを返します。
- 測定区間の経過ミリ秒数
ミリ秒単位で、経過時間の長さを返します。
- 測定区間の経過マイクロ秒数
マイクロ秒単位で、経過時間の長さを返します。
- プロセス固有のパフォーマンス測定のために提供されるカウンタです。
このクラスは、OS のパフォーマンスモニタ機能を利用して、 システム上の他のプロセスの動作に左右されず呼び出しプロセスが使った時間を測定します。 プロセス固有モニタを持たないOSでは、 このクラスは意味のある値を返しません。
Windows でのみ使用可能です。
- 区間を表す型
測定時間を表現する型 (一般には、64-bit 符号付き整数)
- 測定開始
測定区間の開始を宣言します。
- 測定終了
測定区間の終端を宣言します。 経過時間を period_count, seconds, milliseconds, or microseconds. で問い合わせる前に呼び出す必要があります。
stop() は、改めて start() を呼び出すことなしに複数回呼ぶことができます。 経過時間は常に、一番最近の start() と一番最近の stop() の間の時間となります。
- カーネルモードでの経過時間カウンタ
マシン固有の単位でカーネルモードでの経過時間をカウントした量を返します。
- 測定区間のカーネルモードでの経過秒数
秒単位で、カーネルモードでの経過時間の長さを返します。
- 測定区間のカーネルモードでの経過ミリ秒数
ミリ秒単位で、カーネルモードでの経過時間の長さを返します。
- 測定区間のカーネルモードでの経過マイクロ秒数
マイクロ秒単位で、カーネルモードでの経過時間の長さを返します。
- ユーザーモードでの経過時間カウンタ
マシン固有の単位でユーザーモードでの経過時間をカウントした量を返します。
- 測定区間のユーザーモードでの経過秒数
秒単位で、ユーザーモードでの経過時間の長さを返します。
- 測定区間のユーザーモードでの経過ミリ秒数
ミリ秒単位で、ユーザーモードでの経過時間の長さを返します。
- 測定区間のユーザーモードでの経過マイクロ秒数
マイクロ秒単位で、ユーザーモードでの経過時間の長さを返します。
- 測定区間の経過時間カウンタ
マシン固有の単位で経過時間をカウントした量を返します。
- 測定区間の経過秒数
秒単位で、経過時間の長さを返します。
- 測定区間の経過ミリ秒数
ミリ秒単位で、経過時間の長さを返します。
- 測定区間の経過マイクロ秒数
マイクロ秒単位で、経過時間の長さを返します。