15.2.4. time コマンドを使用した読み取りクロックのコストの比較
time
コマンドを使用してクロックソースを 1,000 万回読み取り、利用可能なハードウェアクロックの読み取り CLOCK_MONOTONIC
および CLOCK_MONOTONIC_COARSE
表現のコストを比較することができます。以下の例では、TSC、HPET、および ACPI_PM のハードウェアクロックを使用します。time
コマンドの出力の暗号を解除する方法は、「ハードウェアクロックソースの読み取り」 を参照してください。
例15.5 読み取り用 POSIX クロックのコストの比較
TSC: ~]#time ./clock_timing_monotonic
real 0m0.567s user 0m0.559s sys 0m0.002s ~]#time ./clock_timing_monotonic_coarse
real 0m0.120s user 0m0.118s sys 0m0.001s HPET: ~]#time ./clock_timing_monotonic
real 0m12.257s user 0m12.179s sys 0m0.002s ~]#time ./clock_timing_monotonic_coarse
real 0m0.119s user 0m0.118s sys 0m0.000s ACPI_PM: ~]#time ./clock_timing_monotonic
real 0m25.524s user 0m0.451s sys 0m24.932s ~]#time ./clock_timing_monotonic_coarse
real 0m0.119s user 0m0.117s sys 0m0.001s
例15.5「読み取り用 POSIX クロックのコストの比較」 からわかるように、
_COARSE
クロックが使用されると、sys
時間 (ユーザープロセスで必要なタスクを実行するためにカーネルが費やした時間) が大幅に短縮されます。これは、特に ACPI_PM クロックのタイミングで明確です。これは、POSIX クロックの _COARSE
バリアントにより、読み取りコストが高いクロックのパフォーマンスが向上します。