草庐IT

Monotonic

全部标签

Linux clock_gettime(CLOCK_MONOTONIC) 奇怪的非单调行为

伙计们,在我的应用程序中,我正在使用clock_gettime(CLOCK_MONOTONIC)来测量帧之间的增量时间(gamedev中的一种典型方法),我不时会遇到一个奇怪的问题clock_gettime(..)的行为-返回值有时不是单调的(即上一个时间大于当前时间)。目前,如果发生这样的悖论,我只是跳过当前帧并开始处理下一帧。问题是这怎么可能呢?它是clock_gettime的LinuxPOSIX实现中的错误吗?我使用的是Ubuntu服务器版10.04(内核2.6.32-24、x86_64)、gcc-4.4.3。 最佳答案 ma

c - CLOCK_MONOTONIC 进程(或线程)是特定的吗?

如果我使用clock_gettime(CLOCK_MONOTONIC,x)获取时间,然后调用yield(例如sched_yield()),然后再次获取CLOCK_MONOTONIC时间,时间差是否包括程序未运行的时间(已经yield),还是CLOCK_MONOTONIC只跟踪程序执行的时间?我的测试似乎暗示后者,但我想确定。此外,如果CLOCK_MONOTONIC不包括产生的时间,是否有另一个单调计时器(即不受ntp引起的跳跃影响)? 最佳答案 我相信Maxim的答案和评论回答了你问题的第二部分。为了扩展第一部分的答案,POSIX2

Linux clock_gettime(CLOCK_MONOTONIC) 奇怪的非单调行为

伙计们,在我的应用程序中,我正在使用clock_gettime(CLOCK_MONOTONIC)来测量帧之间的增量时间(gamedev中的一种典型方法),我不时会遇到一个奇怪的问题clock_gettime(..)的行为-返回值有时不是单调的(即上一个时间大于当前时间)。目前,如果发生这样的悖论,我只是跳过当前帧并开始处理下一帧。问题是这怎么可能呢?它是clock_gettime的LinuxPOSIX实现中的错误吗?我使用的是Ubuntu服务器版10.04(内核2.6.32-24、x86_64)、gcc-4.4.3。 最佳答案 ma

c++ - CLOCK_MONOTONIC 和 pthread_mutex_timedlock/pthread_cond_timedwait

pthread_mutex_timedlockdocumentation说abs_timeout需要一个CLOCK_REALTIME。但是,我们都知道对特定持续时间进行计时是不合适的(由于系统时间调整)。有没有办法让可移植的CLOCK_MONOTONIC上的pthread锁定超时?pthread_cond_timedwait也是如此。 最佳答案 查看了文档和pthread.h,我找不到制作pthread_mutex_timedlock的方法使用CLOCK_MONOTONIC所以我认为这是不可能的(目前)。对于pthread_cond

mongodb - 使用 mgo.Monotonic 从中学读取

我正在尝试配置从mongo副本集的主节点和两个辅助节点读取以提供更好的负载平衡。3个节点中的每一个都位于具有IP地址的不同机器上:ip1、ip2、ip3。我的GoLang站点,即martini网络服务器,有两个url/insert和/get:packagemainimport("github.com/go-martini/martini""gopkg.in/mgo.v2""gopkg.in/mgo.v2/bson""net/http")const(dialStr="ip1:port1,ip2:port2,ip3:port3"dbName="test"collectionName="te

linux - CLOCK_MONOTONIC 与 CLOCK_MONOTONIC_RAW 有什么区别?

根据Ubuntu下的Linux手册页CLOCK_MONOTONICClockthatcannotbesetandrepresentsmonotonictimesincesomeunspecifiedstartingpoint.CLOCK_MONOTONIC_RAW(sinceLinux2.6.28;Linux-specific)SimilartoCLOCK_MONOTONIC,butprovidesaccesstoarawhard‐ware-basedtimethatisnotsubjecttoNTPadjustments.根据韦氏在线词典单调的意思是:2:havingtheprope

linux - CLOCK_REALTIME 和 CLOCK_MONOTONIC 的区别?

您能解释一下CLOCK_REALTIME和CLOCK_MONOTONIC在Linux上由clock_gettime()返回的时钟之间的区别吗?如果我需要计算外部源生成的时间戳与当前时间之间的耗时,哪个更好?最后,如果我有一个NTP守护进程定期调整系统时间,这些调整如何与CLOCK_REALTIME和CLOCK_MONOTONIC中的每一个交互? 最佳答案 CLOCK_REALTIME表示机器对当前挂钟时间的最佳猜测。如Ignacio和MarkR也就是说,这意味着CLOCK_REALTIME可以随着系统时间时钟的更改(包括NTP更改)

linux - CLOCK_REALTIME 和 CLOCK_MONOTONIC 的区别?

您能解释一下CLOCK_REALTIME和CLOCK_MONOTONIC在Linux上由clock_gettime()返回的时钟之间的区别吗?如果我需要计算外部源生成的时间戳与当前时间之间的耗时,哪个更好?最后,如果我有一个NTP守护进程定期调整系统时间,这些调整如何与CLOCK_REALTIME和CLOCK_MONOTONIC中的每一个交互? 最佳答案 CLOCK_REALTIME表示机器对当前挂钟时间的最佳猜测。如Ignacio和MarkR也就是说,这意味着CLOCK_REALTIME可以随着系统时间时钟的更改(包括NTP更改)