是否存在解决具有以下属性的日志文件的播放速度的通用算法。如果可能的话,不必阅读整个日志文件也不错。
然后播放将以2x的任何速度播放。例如。
想到了几种不同的方法,但认为可能存在一种广义算法。
感谢
答案 0 :(得分:0)
如果日志文件中的行按时间顺序排列,则非常简单。
所以如果你想以2x运行:
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
}
这是执行此操作的单线程方式。不过,我建议使用两个线程:一个用于读取日志和队列命令,另一个用于读取队列和执行命令。