gpt4 book ai didi

algorithm - 播放速度的通用算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:26:55 26 4
gpt4 key购买 nike

是否有一种通用算法可以解决具有以下属性的日志文件的播放速度。如果可能的话,最好也不必读取整个日志文件。

  • 每一行都包含一个时间戳
  • 采样率未知

然后可以以任何速度播放,例如 2x。

考虑了几种不同的方法,但认为可能存在通用算法。

  1. 读取第一个时间戳并使用它来决定下一行是否应该运行,scheduler-esce。
  2. 将所有分配时间表的行读取到内存中,然后每行将在正确的时间触发。同样,您必须阅读第一行以获得引用点。

谢谢

最佳答案

如果日志文件中的行是按时间顺序排列的,那就很简单了。

  1. 读取第一行,保存时间戳,然后执行。
  2. 读取第二行,计算时间差,调整速度因子,并将该间隔添加到当前时间。
  3. 结果为执行下一条命令的时间。
  4. 在适当的时候执行命令并循环到步骤2。

因此,如果您想以 2 倍的速度运行:

cmd = read_log
previous_time = cmd.time;
while (true)
{
new_time = cmd.time;
execute_time = current_time + (new_time - previous_time)/2.0;
previous_time = new_time;
// wait here until it's time to execute the command
execute_command();
cmd = read_log
}

这是单线程的方式。不过,我建议使用两个线程:一个用于读取日志和队列命令,另一个用于读取队列并执行命令。

关于algorithm - 播放速度的通用算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com