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版
- プログラミング言語の理論を学には … プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)