在低延迟交易应用程序中,我们非常清楚延迟问题。有些人担心,如果运行它的服务器改变PowerNow状态,我们的应用程序可能会遇到更长的延迟。

任何熟悉调用PowerNow的内核开发人员都会发生变化,操作使用了多少处理器时间以及延迟/延迟特性是什么样的?

英特尔SpeedStep的相同信息很有用,但PowerNow是我们实际使用的。

谢谢!

有帮助吗?

解决方案

Linux内核似乎假设一个五分之一毫秒的上限,以便完成PowerNow状态更改操作。

我会想到比国家改变本身的成本更大的担忧,但是,降低CPU的速度会使你的应用程序运行速度变慢,从而增加全面的延迟。

其他提示

我怀疑它有任何延迟。 PowerNow只是降低核心频率和核心电压。我不知道它会在短时间内暂停CPU,然后在更改后恢复处理。 AFAIK即时发生变化,处理不会中断。

因此,更大的问题可能是您依赖于某个速度(例如,假设处理器可以在一秒钟内执行那么多操作),但是当核心频率降低时,它将表现得像一个较慢的CPU(每个操作较少)因为CPU不是100%空闲,核心频率不会跳到最大值。当CPU认为它需要比目前更多的处理能力时,它会再次跳起来。

在Linux上运行带有Windows的VMWare时,PowerNow可能会导致错误问题。 Windows无法正确更新内部时钟,因为它似乎没有检测到PowerNow有效(我猜因为它在虚拟机中运行)并且VMWare for Linux也无法正确处理这种情况。因此,一旦PowerNow处于活动状态,Windows时钟就会落后,VMWare会不时检测到并再次校正时钟。到目前为止,依赖于Windows时钟的应用程序会看到这种奇怪的跳跃并且行为相当奇怪(例如,我知道的无线电流媒体软件会在MP3流中跳转并且每次时钟重新启动时跳过几毫秒)。 / p>

如果您的应用程序强烈依赖于稳定的程序流程,您可能希望完全禁用PowerNow功能。使用互联网广播流软件,这是解决跳过问题的唯一方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top