我正在开发一个计算 recaman 序列的程序。我想计算然后可视化序列中的数千或数百万个术语。但是,我注意到它占用了 10% 的 CPU,并且任务管理器说它的耗电量非常高。我不想损坏电脑,也愿意为了电脑的安全而牺牲速度。有没有办法限制这个应用程序的 CPU 使用率或电池消耗水平?
这适用于 Windows 10。
//My Function for calculating the sequence
//If it helps, you could look up 'Recaman Sequence' on google
void processSequence(int numberOfTerms) {
int* terms;
terms = new int[numberOfTerms];
terms[0] = 0;
cout << "Term Number " << 0 << " is: " << 0 << endl;
int currentTermNumber = 1;
int lastTerm = 0;
int largestTerm = 0;
for (currentTermNumber; currentTermNumber < numberOfTerms; currentTermNumber++) {
int thisTerm;
bool termTaken = false;
for (int j = 0; j < numberOfTerms; j++) {
if (terms[j] == lastTerm - currentTermNumber) {
termTaken = true;
}
}
if (!termTaken && lastTerm - currentTermNumber > 0) {
thisTerm = lastTerm - currentTermNumber;
}
else {
thisTerm = lastTerm + currentTermNumber;
}
if (thisTerm > largestTerm) {
largestTerm = thisTerm;
}
lastTerm = thisTerm;
cout << "Term Number " << currentTermNumber << " is: " << thisTerm << endl;
};
cout << "The Largest Term Number Was: " << largestTerm << endl;
delete[] terms;
}
使用较少 CPU 的最简单方法是不时地休眠一小段时间,例如一或几毫秒。您可以通过调用 Sleep (Windows API) 或 current_thread::sleep (自 C++11 以来的标准)来实现。
然而,
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句