如何最大化应用程序的 CPU 使用率?我尝试在任务管理器中将其设置为“实时”,但没有明显改善——它停留在 50%。
我正在使用 Visual C++ 2005 在 Windows XP 中工作。
如何最大化应用程序的 CPU 使用率?我尝试在任务管理器中将其设置为“实时”,但没有明显改善——它停留在 50%。
我正在使用 Visual C++ 2005 在 Windows XP 中工作。
我假设您在双核计算机上运行。尝试启动另一个线程。
如果您的应用程序中只有一个执行线程,则它一次只能在一个 CPU 内核上运行。解决这个问题的方法是将工作分成两半,让一个 CPU 核心运行一半,另一个核心运行另一半。当然,您可能希望将其概括为与 4 个或更多内核一起使用....
为您的应用程序设置优先级只会将其移到队列中,以便进程首先有机会使用 CPU。如果有一个实时进程在等待 CPU,它总是会在高优先级之前获得它,依此类推。即使您的应用程序的优先级较低,如果它有足够的工作要做,它仍然可以最大化 CPU 内核,并且没有更高优先级的进程想要使用该内核。
有关多线程的介绍,请查看以下问题:
您可能有一个双核处理器,并且您的程序可能是单线程的。
优先级与您的进程使用多少 CPU 几乎没有关系。这是因为如果有东西可以运行,操作系统会安排它运行,即使它是低优先级的。只有当有两个或更多的可运行线程可供选择时,优先级才会出现。(注意:这是一个极端的简化。)
Prime95等数字运算程序以尽可能低的优先级运行,并产生多个线程以使用尽可能多的 CPU。
实时不一定会占用 CPU 周期。尝试产生一个或两个或三个运行紧密循环的线程,最基本的。如果您想(ab)使用内存,您还可以在循环中分配和释放一些任意对象。