編集:
迅速な返信に感謝します ^^ Sleep() は意図したとおりに動作し、私の CPU はこのプログラムによってひどく食い尽くされることはもうありません! この質問はそのままにしておきますが、CPU の問題が適切かつ専門的に回答されたことを皆さんに知らせるために:D
余談ですが、より大きく、より重要な問題に直面した場合に備えて、マイクロ最適化を最小限に抑えるようにします!
================================================== ==============================
何らかの理由で、笑いと練習のために作ったコンソールの目覚まし時計である私のプログラムは、非常に CPU を集中的に使用します。約 2mB の RAM を消費します。これは、このような小さなプログラムではすでにかなりの量ですが、CPU のリソースが 50% を超えることもあります。
ほとんどの場合、私のプログラムは秒数をカウントダウンする以外は何もしていません。そのため、理由はわかりませんが、プログラムのこの部分が CPU に大きな負担をかけていると思います。もしそうなら、それをより少なくする方法、または問題が簡単に解決できない場合に代わりに使用するライブラリをお勧めできますか?
/* The wait function waits exactly one second before returning to the *
* called function. */
void wait( const int &seconds )
{
clock_t endwait; // Type needed to compare with clock()
endwait = clock() + ( seconds * CLOCKS_PER_SEC );
while( clock() < endwait ) {} // Nothing need be done here.
}
誰かが CPlusPlus.com をブラウズしている場合、これは clock() の例として書かれた clock() 関数の本物のコピー/貼り付けです。コメント//Nothing need be done here
がとてもつまらない理由の多く。clock() が正確に何をするのか、まだ完全にはわかりません。
プログラムの残りの部分は、60 秒ごとにのみアクティブになる 2 つの他の関数を呼び出します。それ以外の場合は、呼び出し元に戻り、さらに 1 秒カウントダウンします。そのため、CPU に負荷がかかりすぎるとは思いません。わかりませんが、これは私の最初の試みです。コードの最適化で。
最初の機能は、コンソールのクリアを使用system("cls")
することです。これは、非常に遅く、良い考えではありません。私はポストヘイストを変更しますが、60 秒ごとにしかアクティブ化されず、顕著なラグスパイクがあるため、ほとんどの場合、これは問題ではないことがわかっています.
2 番目の関数は、60 秒ごとに更新された残り時間で画面の内容を書き換えます。
この関数が問題ではないことが明らかな場合は、wait、clearScreen、display を呼び出す関数を編集します。私はすでにほとんどの変数を参照しようとしたので、それらはコピーされませendl
ん\n
.