【发布时间】:2011-09-20 22:00:01
【问题描述】:
我有一个用 C++ 编写的程序,它每秒运行多个 for 循环,而不使用任何会使其因任何原因等待的东西。它始终使用 2-10% 的 CPU。有什么方法可以强制它使用更多的 CPU 并进行更多的计算而不会使程序更复杂?此外,我在 Windows 计算机上使用 C::B 进行编译。本质上,我在问是否有一种方法可以通过增加 CPU 的使用率来使我的程序更快,如果可以,如何实现。
【问题讨论】:
-
我为什么要读 fork bomb..
-
听起来你不想增加 CPU 消耗但性能。通常,当同步时,循环会消耗 CPU 内核。如果没有,通常是因为等待资源/操作系统(例如,文件系统)。在现代架构上,您可能希望将计算拆分为核心。但是,如果不查看您的代码,可能很难知道如何去做。
-
如果你的程序没有任何类型的延迟(没有等待),那么通常它会使用 100% 的单核而无需任何额外的步骤(即它会使用 25% 的组合 CPU 在 4 -核心机)。如果你的程序只使用了 1%-2%,那么它要么是 50-100 核机器,要么你没有告诉我们一些重要的事情(即与你的想法相反,你的程序确实有很多等待)。
-
我的肮脏小手在哪里可以弄到那些可爱的 50-100 核 CPU。嗯嗯!
-
发布代码(至少是你的 for 循环)。我完全同意@AndreyT。因此,没有代码,讨论毫无意义。我们大多数人(包括我)的代码无需等待就可以消耗整个 CPU 内核,因此在您发布代码之前,不可能找出您的代码有什么不同。
标签: c++ windows performance memory-management cpu