DartにはStopwatchインタフェースというものが用意されています。これを使うと、簡単にストップウォッチが実現できます。
start()で開始、stop()で停止、reset()でリセットです。start()からの経過時間はelapsedInMs()を使うとミリ秒、elapsedInUs()を使うとマイクロ秒で知ることができます。elapsed()は、frequency()によって取得できる周波数に依存していて、何回カウントしたかがわかります。reset()してからstart()しなければ、0となります。
class StopwatchSample {
Stopwatch _watch;
StopwatchSample() {
_watch = new Stopwatch();
}
void timeMeasurement() {
// start
_watch.start();
// busy wait for 1000[msec]
while (_watch.elapsedInMs() < 1000) {}
// stop
_watch.stop();
}
void printResult() {
print("""
frequency() :${_watch.frequency()} hz
elapsed() :${_watch.elapsed()} clock ticks
elapsedInMs():${_watch.elapsedInMs()} milliseconds
elapsedInUs():${_watch.elapsedInUs()} microseconds
""");
}
void reset() {
_watch.reset();
print("reset(); elapsed() :${_watch.elapsed()}");
}
}
void main() {
StopwatchSample app = new StopwatchSample();
app.timeMeasurement();
app.printResult();
app.reset();
}
実行結果の例は次のとおりです。
frequency() :1000000 hz elapsed() :1000086 clock ticks elapsedInMs():1000 milliseconds elapsedInUs():1000086 microseconds reset(); elapsed() :0
- クラスベースのオブジェクト指向プログラミング言語の基礎を学ぶには … 改訂版 基礎Java(CD-ROM付) (IMPRESS KISO SERIES)
- クラスベースのオブジェクト指向プログラミング言語を学ぶには … プログラミング言語Java (The Java Series)
- 関数型プログラミング言語を学ぶには … Scalaスケーラブルプログラミング第2版
- プログラミング言語の理論を学には … プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)