应用程序(故意)消耗 CPU 时间?

应用程序(故意)消耗 CPU 时间?

是否有设计为消耗用户定义的 CPU 时间的应用程序?用于测试目的?

例如,可以将其设置为消耗 57% 的可用 CPU 时间来充分减慢其他应用程序的速度,但不要太多,以便获取瞬态现象的屏幕截图。

对于 Unix 系统压力, “POSIX 系统的工作负载生成器。它对系统施加可配置数量的 CPU、内存、I/O 和磁盘压力。”。

平台:Windows。

答案1

有一款软件叫战斗编码器 Shirase其设计目的正是实现这一目标。

它不是通过消耗过多的 CPU 时间来工作的,而是通过快速暂停和恢复目标进度来工作的。它的工作原理很像一个廉价的调光开关。结果比 之类的东西更加一致和可预测stress,但无论如何结果几乎是一样的。

假设“电压”表示高电平恢复,低电平暂停。如果您将其设置为将特定进程的 CPU 限制为 25%,则该进程将按如下方式运行:

脉冲宽度调制

答案2

这个问题似乎很难。我不知道有什么工具可以跟踪 CPU 利用率并据此控制负载。我知道 SETI@home 项目曾遇到过这个问题。他们通过采用一个时间单位(不记得是一秒还是一分钟……)并让 CPU 在其中一部分负载为 100% 来解决这个问题。因此,当用户将 CPU 负载设置为 50% 时,一半时间单位的 CPU 将以 100% 运行,另一半则为 0%。您可以尝试使用 S@H,看看它是否适合您。链接:http://setiathome.berkeley.edu

还有莫斯洛,但自从 DOS 时代以来我就没用过它了,我不知道它在 Windows 下运行得如何。它似乎通过使目标程序使用更少的 CPU 时间来工作,所以它不是你需要的。

答案3

CPU Burn 工具通常专注于占用所有周期。
您的要求很有趣,我想知道是否可以使用该工具的受控版本来实现这一点,该版本将查看其自己的 CPU 利用率并自行调高或调低以匹配配置的设置。

CPU 烧录工具的经典形式是梅森素数搜索
这是获得它的地方来源版本。


漫谈想法。
作为自我调整的一个例子,我记得前段时间写过一个曲线绘图工具,它使用了一种近似曲线图,精度越来越高(更多的迭代/递归以获得更好的曲线)。我通过测量计算曲线每次迭代所需的时间,将其转换为某种“基准”。我想在以足够的精度绘制曲线后继续在屏幕上移动曲线(想想屏幕保护程序)。根据测试系统的速度,我调整了移动(动画)以 25 帧速率左右的速度工作。因此,更快的系统显示出更好的曲线!

您可以使用主要搜索代码来添加 CPU 利用率“传感器”,并使用它来减慢或增加计算速率(以近似配置的 CPU 利用率)。

这部分答案可能更适合在 Stackoverflow 上:-)
看到你也在那里活跃,也许这会让你感兴趣。

相关内容