voile.benchmark
性能評価に関するモジュール
ベンチマークのヘルパクラスや、所定位置を通過した時間の記録、呼び出された回数
などを記録することのできるクラスを用意した。
関数の実行にかかる時間を短縮し、スピードアップするのに役に立つかもしれない。
- Benchmark
- FootPrint
- CallCounter
Date:
December 08, 2008
License:
NYSL ( http://www.kmonos.net/nysl/ )
- struct
FootPrintBenchmark
; - 足跡を記録するこのクラスは、ファイルと行番号ごとに足跡をつけ、前回の足跡からどの程度の時間 が経過したかを記録し、時間がかかっている個所を特定するためのクラスです。
void main() { scope fp = new FootPrint; fp.stamp(__FILE__,__LINE__); func1(); fp.stamp(__FILE__,__LINE__); func2(); fp.stamp(__FILE__,__LINE__); Stdout("Stamp infomations").newline; foreach (d; fp.result) { Stdout.formatln("{}({}): {} sec", d.file, d.line, d.time.interval); } }
For profiling. It stamps the code footprints for searching bottlenecks. When not enough to profile in -profile, this object is useful.- struct
Data
; - 記録されるデータ
- Duration
time
; - 時間
- string
file
; - 呼び出し元ファイル名
- uint
line
; - 呼び出し元行数
- const string
toString
(); - 文字列表現
- this(AutoStart as);
- 自動測定コンストラクタAutoStartの値によって、自動的にストップウォッチ開始するか決まります。
- void
start
(); - ストップウォッチスタート初めてのスタートの場合、この時刻からの時間を測定して足跡に記録します。 一時停止からの復帰の場合、継続的に時間の測定を行います。
- void
stop
(); - ストップウォッチストップ一時停止です。再び復帰する場合はstart()します
- void
reset
(); - ストップウォッチリセット
- void
clear
(); - データをクリアします。ストップウォッチの状態はそのままです。 ストップウォッチをリセットする場合はresetをコールしてください
- void
stamp
(string f = __FILE__, uint l = __LINE__); - 足跡を記録します。この関数を呼び出した時点での時間と、呼び出し元を記録してデータに追加しま す。
- immutable(real)[]
intervals
(); - 各データのそれぞれの呼び出し間隔を返します。
- immutable(Data)[]
datas
(); - 記録されたデータそのものを返します
- immutable(Data)[]
intervalDatas
(); - 記録されたデータそのものを返します
- class
CallCounter
; - 呼び出しの情報を記録するこのクラスは呼び出した回数を記録する。呼び出された回数が多いほどその周囲は 時間に気をつけるようにするとよい。
- struct
Data
; - 記録されるデータ
- immutable string
file
; - ファイル名
- immutable uint
line
; - 行番号
- immutable ulong
count
; - 回数
- void
call
(string file = __FILE__, uint line = __LINE__); - 呼び出すこの関数を呼び出すことで、その場所の呼び出し回数カウントしていく。
- immutable(Data)[]
result
(); - 結果を返すこのクラスは呼び出した回数を記録する。呼び出された回数が多いほどその周囲は 時間に気をつけるようにするとよい。
- struct
ProfileData
; -
- Thread
thread
; - string
file
; - uint
line
; - MonoTime
time
; - MonoTime
duration
;