我正在研究一个计算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开始为标准)来做到这一点。
然而,