【发布时间】:2011-04-30 03:29:53
【问题描述】:
在我的公司,我们经常测试 USB 和 FireWire 设备在 CPU 压力下的性能。
我们运行了一个加载 CPU 的测试代码,它通常用于非常简单的非正式测试,以了解我们设备的性能会发生什么变化。
我查看了这方面的代码,它是一个简单的循环,它增加一个计数器并根据新值进行计算,将此结果存储在另一个变量中。
运行单个实例将使用 1/X 的 CPU,其中 X 是内核数。
因此,例如,如果我们在一台 8 核 PC 上,并且想要查看我们的设备在 50% 的 CPU 使用率下如何运行,我们可以一次打开四个实例,依此类推...
我想知道:
是什么决定了 CPU 的使用量?它只是在单线程应用程序的单线程上尽可能快地运行所有内容吗?
有没有办法自愿限制您的程序可以使用的最大 CPU 使用率?我可以想到一些“草率”的方法(添加睡眠命令或其他东西),但是有没有办法限制说,可用 CPU 的某个指定百分比或其他东西?
【问题讨论】:
-
1. CPU 尝试尽可能快地运行代码。 2. 没有“草率”的方式,你就不能施加限制。
-
@Ben Aw 是不是很新。
-
@David:也许是 Windows 的新手,但实时操作系统长期以来一直提供 CPU 分区。