最大化CPU使用率

时间:2009-10-27 21:40:46

标签: c++ windows windows-xp cpu-usage visual-c++-2005

如何最大化应用程序的CPU使用率?我尝试在任务管理器中将其设置为“实时”,但没有明显的改进 - 它停留在50%。

我在使用Visual C ++ 2005的Windows XP中工作。

4 个答案:

答案 0 :(得分:27)

我假设你在双核计算机上运行。尝试启动另一个线程。

如果您的应用程序中只有一个执行线程,则它一次只能在一个CPU核心上运行。解决方案是将工作分成两半,让一个CPU核心运行一半,另一个核心运行另一半。当然,您可能希望将其概括为4核或更多核心....

设置应用程序的优先级只是将其向上移动到队列,该队列首先有机会使用CPU。如果存在等待CPU的实时进程,则它将始终在高优先级之前获取它,依此类推优先级列表。即使您的应用程序具有低优先级,如果它有足够的工作要做,它仍然可以最大化CPU核心,并且没有更高优先级的进程想要使用该核心。

有关多线程的介绍,请查看以下问题:

答案 1 :(得分:9)

您可能拥有双核处理器,而您的程序可能是单线程的。

答案 2 :(得分:5)

优先级与您的进程使用的CPU数量几乎没有任何关系。这是因为如果有可用运行,操作系统将安排它运行,即使它是低优先级。当有两个或更多可运行线程可供选择时,优先级才会进入。 (注意:这是极端简化。)

Prime95之类的数字运算程序以最低可能的优先级运行,并产生多个线程以使用所有尽可能多的CPU。

答案 3 :(得分:0)

实时不一定会占用CPU周期。尝试生成一个或两个或者三个运行紧密循环的线程,这些循环最重要。如果你想(ab)使用内存,你也可以在循环中分配和释放一些任意对象。