概述在linux中计算时间:粒度和精度
**********************原始编辑**********************
我正在使用不同types的时钟在liNUX系统中获取时间:
rdtsc,gettimeofday,clock_gettime
并已经阅读了这样的各种线程:
我可以在linux上获得什么样的最佳时间分辨率?
应用程序不会看到系统时区更改,直到重新启动
如何获得perl系统调用的cpu时间?
windows上的微秒分辨率时间戳
linux中用户空间的高精度时序
每次login和注销windows XP时,如何logging时间?
如何获得linux gettimeofday()的微秒时间,它的准确度是多less?
我如何测量C中的时间间隔?
相当于gettimeofday的速度
粒度在时间函数
为什么clock_gettime如此不稳定?
但是我有点困惑:
粒度,分辨率,精度,准确度有什么区别?
粒度(或分辨率或精度)和准确性是不一样的东西(如果我是正确的…)
例如,在使用“clock_gettime”时 ,精度为10ms,如下所示:
struct timespec res; clock_getres( CLOCK_REALTIME,&res):
和粒度(定义为每秒刻度)是100Hz(或10ms),正如我在执行时得到的那样:
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(使用命令)的粒度是多less?
b)我们可以改变他们(以任何方式)?
提前致谢
**********************编辑no2 **********************
大家好,我testing了一些新的时钟,我想分享信息:
a)在下面的页面中, DavID Terei做了一个很好的程序来比较各种钟表和他们的表演:
https://github.com/dterei/Scraps/tree/master/c/time
b)我也testing过omp_get_wtime,就像Raxman所build议的那样,我发现它的精确度是nsec,但并不比“clock_gettime(就像他们在这个网站上做的那样)好:
http://msdn.microsoft.com/en-us/library/t3282fe5.aspx
我认为这是一个面向窗口的时间函数
使用CLOCK_MONOTONIC的clock_gettime给出比使用CLOCK_REALTIME更好的结果。 这很正常,因为第一个分别计算PROCESSING时间和另一个REAL TIME
c)我也发现了英特尔函数ippGetcpuClocks ,但不是我没有testing它,因为它是必须先注册:
http://software.intel.com/en-us/articles/ipp-downloads-registration-and-licensing/
…或者您可以使用试用版
感谢所有的答复!
C#:WMP,时间戳,以毫秒/十分之一秒为单位
如何更新date和时间控制面板以匹配W32Time服务configuration?
如何识别这个结构中的mYear元素的含义?
时间()保证是闰秒意识?
windows API来触发时间同步
精度是信息量,即您报告的有效位数。 (例如,我是2米,1.8米,1.83米,高1.8322米,所有这些测量都是准确的,但越来越精确。)
准确性是报道的信息与事实之间的关系。 (例如“我身高1.70米”比“1.8米”更精确,但实际上并不准确。)
粒度或分辨率是计时器可以测量的最小时间间隔。 例如,如果您的粒度为1毫秒,那么以纳秒精度报告结果几乎没有意义,因为它不可能精确到这个精度水平。
在linux上,粒度增加的可用计时器是:
clock()从<time.h> (20ms或10ms分辨率?)
从Posix <sys/time.h> gettimeofday() (微秒)
Posix上的clock_gettime() (纳秒?)
在C ++中, <chrono>标题提供了一定程度的抽象,而std::high_resolution_clock试图给你最好的时钟。
总结
以上是内存溢出为你收集整理的在linux中计算时间:粒度和精度全部内容,希望文章能够帮你解决在linux中计算时间:粒度和精度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容