除了配置 NTP 服务器等,我不太确定在 Linux 中计时是如何工作的。
我想知道是否有一种方法可以让我在 Linux 中加快时间。例如,我想在 1 秒内比正常速度快 10000 倍。
澄清一下,我不想像重置时钟那样让时间跳跃,我想提高滴答率,无论它是什么。
最佳答案
这通常是模拟和尽快重播传入数据或事件所需要的功能。
人们解决这个问题的方法是他们有一个事件循环,例如libevent
或 boost::asio
。当前时间从事件循环中获取(例如 epoll
返回的时间)并存储在事件循环变量当前时间中。不是使用 gettimeofday
或 clock_gettime
,而是从 current time 变量中读取时间。所有计时器都由事件循环当前时间驱动。
当模拟/回放时,事件循环当前时间被分配了下一个事件的时间戳,因此消除了事件之间的持续时间并尽可能快地回放事件。而且您的计时器仍然可以在事件之间工作并像实时一样在事件之间触发,但没有延迟。当然,为了让您保存的事件流发挥作用,您的回放必须包含每个事件的时间戳。
关于linux - 有没有办法让时间在 Linux 中过得更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54933750/