Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】CLOCK_MONOTONIC定数の使い方

CLOCK_MONOTONIC定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

CLOCK_MONOTONIC定数は、Rubyにおいて、システムの単調増加クロックの種類を識別するための定数です。この定数は、主にProcess.clock_gettimeメソッドの引数として使用され、システムが起動してからの経過時間を、外部からの影響を受けずに正確に計測する目的で利用されます。

一般的なシステム時刻(ウォールクロックタイム)は、インターネットを介した時刻同期(NTP)や、ユーザーによる手動設定、あるいは閏秒の挿入などによって、進んだり戻ったりする可能性があります。そのため、ある処理の開始から終了までの時間を正確に計測しようとした場合、途中でシステム時刻が変更されると、計測結果が不正確になる恐れがあります。

一方、CLOCK_MONOTONICが参照する単調増加クロックは、そのような外部からの時刻変更の影響を一切受けません。常に過去へ戻ることなく、一定のペースで増加し続ける特性を持っています。このため、プログラムの実行時間を厳密に測りたい場合や、複数のイベント間の経過時間を確実に比較したい場合など、信頼性の高い時間計測が必要な場面で非常に有効です。

例えば、アプリケーションのパフォーマンスを測定するベンチマーク処理や、タイムアウトを実装する際の残り時間の計算、あるいは特定の処理にかかる秒数を計測する際に、このCLOCK_MONOTONIC定数を使用することで、より正確で安定した結果を得ることができます。システムエンジニアとしてプログラムの信頼性を高める上で、重要な役割を果たす定数です。

構文(syntax)

1Process::CLOCK_MONOTONIC

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

Ruby 3のモジュールに定義されている CLOCK_MONOTONIC は、システム起動からの経過時間をナノ秒単位で表す整数値を返します。この値は、システム時刻の変更(手動またはNTPなどによる自動更新)の影響を受けないため、正確な時間計測に適しています。

関連コンテンツ

関連プログラミング言語