C++:故意限制CPU使用率

8bi*_*dge 6 c++ cpu-usage

在我公司,我们经常在CPU压力下测试USB和FireWire设备的性能.

我们运行的测试代码可以加载CPU,它通常用于非常简单的非正式测试,以查看设备性能的变化.

我看了一下这个代码,它是一个简单的循环,它递增一个计数器并根据新值进行计算,将这个结果存储在另一个变量中.

运行单个实例将使用CPU的1/X,其中X是核心数.

因此,例如,如果我们使用的是8核PC,并且我们希望看到我们的设备如何在50%的CPU使用率下运行,我们可以同时打开四个这样的实例,依此类推......

我在想:

  1. 是什么决定了CPU耗尽了多少?它是否只是在单线程应用程序中的单个线程上以尽可能快的速度运行所有内容?

  2. 有没有办法自愿限制程序可以使用的最大CPU使用率?我可以想到一些"草率"的方式(添加睡眠命令或其他东西),但有没有办法限制说,某些指定百分比的可用CPU或什么?

Ben*_*igt 6

Windows 7Linux上的CPU配额.

还有QNX(即Blackberry Tablet OS)LynuxWorks

如果链接断开,文章命名为:

  • Windows - "Windows Server 2008 R2和Windows 7中的CPU速率限制"
  • Linux - "Linux的CPU使用限制器"
  • QNX - "自适应分区"
  • LynuxWorks - "分区操作系统"和"ARINC 653"