【Ruby3.x】CLOCK_MONOTONIC_COARSE定数の使い方
CLOCK_MONOTONIC_COARSE定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
CLOCK_MONOTONIC_COARSE定数は、システム内で単調増加する時計(クロック)を指し示す定数です。この定数は主にRubyの Process モジュールを通じて利用され、オペレーティングシステムが提供する時間計測基準の一つとして機能します。「単調増加(Monotonic)」とは、コンピューターのシステム時刻が外部からの調整、例えばNTPサーバーによる時刻同期や手動での変更などによって前後することなく、常に未来に向かって一方向に進み続ける時間計測の基準であることを意味します。これにより、外部の時刻変動に影響されず、プログラムの処理にかかる時間や特定のイベント間の経過時間を信頼性高く測定できます。
定数名に含まれる「COARSE(粗い)」は、この時計の計測精度が比較的低いことを示しています。同じ単調増加クロックである CLOCK_MONOTONIC と比較すると、時間の最小単位の分解能は劣りますが、その反面、時間を取得する際の処理コストが低く、より高速に値を取得できるという利点があります。そのため、極めて高い精度は必要ないものの、安定して時間の経過を追跡したい場合や、計測のオーバーヘッドを最小限に抑えたい場面での利用に適しています。具体的には、Process.clock_gettime(Process::CLOCK_MONOTONIC_COARSE) のように記述することで、この粗い精度の単調増加クロックの現在時刻を取得し、ログ記録や処理時間の概算などに活用されます。高い精度よりも効率性を重視する時間計測の選択肢の一つです。
構文(syntax)
1Process::CLOCK_MONOTONIC_COARSE
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer
CLOCK_MONOTONIC_COARSEは、システム起動からの経過時間(ナノ秒単位)を表す整数値です。この値は、システムクロックの変更(時刻同期など)の影響を受けにくい、より粗い粒度のタイマーとして機能します。