显然,我是在用PC时钟而不是实时来谈论时间。
我们正在通过设置前后时钟以测试不同的情况来测试我们正在开发的应用程序,我开始考虑如果可以通过更好的控制来调整系统时钟的速率(?)将会有多大用处。这样一来,您可以在一秒钟之内经过一分钟或一天之内经过30秒钟,然后观察正在开发的程序如何应对日期和时间的变化。
有没有这样的软件?
我很想听听是否有人知道可以让您执行上述部分或全部操作的任何软件或硬件。
显然,我是在用PC时钟而不是实时来谈论时间。
我们正在通过设置前后时钟以测试不同的情况来测试我们正在开发的应用程序,我开始考虑如果可以通过更好的控制来调整系统时钟的速率(?)将会有多大用处。这样一来,您可以在一秒钟之内经过一分钟或一天之内经过30秒钟,然后观察正在开发的程序如何应对日期和时间的变化。
有没有这样的软件?
我很想听听是否有人知道可以让您执行上述部分或全部操作的任何软件或硬件。
Answers:
在UNIX系统上,libfaketime是软件中针对此问题的事实上的标准解决方案。它在您的应用程序和系统的时间库之间执行某种中间人操作。这些请求将传递到系统,但是可以根据需要修改答复。它还会修改stat()
调用结果,因此文件修改时间&c。也被修改。
这些设置是使用环境变量进行的,因此,如果您还不熟悉它们的工作原理,则可能必须了解它们。
libfaketime支持相对和绝对偏移,停止和运行时间以及加速或减速。不过,我不知道会倒退。
请注意,当前版本假装秒是当前时间的最高分辨率,并将响应的亚秒级部分传递给未修改的应用程序。因此,如果将时钟速度减慢到一半速度,那么一个以亚秒为单位的程序可以非常快速地进行时间调用,那么整个秒将经历两次彼此相继的时间,而不仅仅是一次花费两倍的时间。如果时钟停止,则表示应用程序在选定的秒数内看到随机时间。
不幸的是,Github今天掉线了,所以文档暂时不可用,但是可能很快就会解决。
在备份Github的过程中,我尝试了一下,发现速度变化的代码足够通用,可以与负值或接受的任何其他参数一起很好地工作atof()
。
但是,另一个问题变得显而易见:对于速度变化,除了实际的当前时间和所需的时间偏移之外,还必须有时间起点。此原点是为子流程独立设置的,因此(当以正常速度向后运行时)父流程缩回一分钟时,新生成的子流程将比父流程迟两分钟看到当前时间。
您可以随时编写脚本。(CMD是否仍支持DATE / TIME命令?)
无论如何,最终使用的任何程序都可以通过以较小的增量重置时间来工作。如果您不需要超细粒度的控制,则批处理脚本(或perl :)可以非常轻松地控制这些更改。
要点:要使用此解决方案,必须关闭NTP更新服务,以使OS不会将时钟重新设置为预期的时间。
我发现了对一个名为ASpeeder的旧程序的引用。我不知道它是如何工作的,是否有效的,或者它是否是一个古老的骗局。请自担风险。冰雹Eris。
它是付费软件(20美元)。请看一下,并在安装前确保对下载的文件进行病毒检查。
Speeder 2008.4的功能(来自网站):