**********************オリジナル編集************************
Linux システムで時刻を取得するために、さまざまな種類の時計を使用しています。
rdtsc, gettimeofday, clock_gettime
すでに次のようなさまざまな質問を読んでいます。
しかし、私は少し混乱しています:
粒度、解像度、精度、精度の違いは何ですか?
粒度(または解像度または精度)と精度は同じものではありません(私が正しければ...)
たとえば、「clock_gettime」を使用している間、精度は次のように10ミリ秒です。
struct timespec res;
clock_getres(CLOCK_REALTIME, &res):
実行時に得られるように、粒度 (1 秒あたりのティック数として定義) は 100 Hz (または 10 ミリ秒) です。
long ticks_per_sec = sysconf(_SC_CLK_TCK);
上記のコードが示唆するように、精度はナノ秒単位です。
struct timespec gettime_now;
clock_gettime(CLOCK_REALTIME, &gettime_now);
time_difference = gettime_now.tv_nsec - start_time;
以下のリンクで、これが Linux の粒度のグローバルな定義であり、変更しない方がよいことがわかりました。
http://wwwagss.informatik.uni-kl.de/Projekte/Squirrel/da/node5.html#fig:clock:hw
したがって、私の質問は、上記の発言が正しかった場合、および次のとおりです。
a) rdtsc と gettimeofday (コマンドを使用) の粒度を確認できますか?
b) それらを (何らかの方法で) 変更できますか?
**********************編集番号 2************************
いくつかの新しい時計をテストしました。情報を共有したいと思います。
a) 以下のページでは、David Tereiが、さまざまな時計とその性能を比較する優れたプログラムを作成しました。
https://github.com/dterei/Scraps/tree/master/c/time
b) Raxmanが提案したようにomp_get_wtimeもテストしましたが、nsecの精度が見つかりましたが、「clock_gettime(このWebサイトで行ったように)よりも優れているわけではありません:
http://msdn.microsoft.com/en-us/library/t3282fe5.aspx
Windows 向けの時間関数だと思います。
CLOCK_REALTIME を使用する場合よりも、 CLOCK_MONOTONICを使用する clock_gettime の方が良い結果が得られます。最初はPROCESSING時間と他のREAL TIMEをそれぞれ計算するため、これは正常です。
c) Intel 関数ippGetCpuClocksも見つけましたが、最初に登録することが必須であるため、テストしていません。
http://software.intel.com/en-us/articles/ipp-downloads-registration-and-licensing/
...または試用版を使用することもできます