【发布时间】:2013-02-12 18:20:11
【问题描述】:
这个程序没有使用所有的 cpu 电源。 我期待它接管 CPU 并尽可能快地运行代码,但它只使用 10 max
#include <iostream>
using namespace std;
int main(void) {
unsigned long long x = 600851475143;
unsigned long long i = x-1;
while(i <= x) {
cout << "\r";
cout << i;
if((x % i) == 0) {
cout << "\n\n";
cout << i;
break;
}
i--;
}
system("pause");
}
最多只能达到 10%
【问题讨论】:
-
因为它只会最大化其中一个核心。
-
由于你的程序简单,只需要10%的CPU就可以运行...
-
因为你的
couts. -
也许如果您的程序计算 1 到 100,000,000,000,000 之间的每个素数。把一些 BigInts 扔进去找乐子。
-
让程序使用所有内核是一个根本性的难题。它被称为多线程(或并行编程,或多处理等)。有关于它的书。简短的版本是你需要将工作分成几块,创建线程,并给每个线程分配一份工作。
标签: c++ performance cpu