程式設計之美 如何讓CPU使用率一直保持在50 左右

2021-06-13 21:18:11 字數 1011 閱讀 3687

今天看到一本講演算法的好書,《叫程式設計之美》。看了一節,裡面講的是控制cpu

的占有率,

cpu的占有率是由程序的忙和空閒來決定的,即

rate=(busy_time)/(busy_time+idle_time);

怎麼來控制她呢? busy可以用迴圈(這個迴圈用空迴圈,以便好控制),idle可以用sleep

比如先讓任務管理器的cpu使用率始終保持在50%左右,那麼在乙個主迴圈中,

讓空迴圈和sleep執行同樣的一小段時間。sleep的時間好搞,空迴圈的怎麼辦呢?可以用cpu的主頻估算出執行乙個空迴圈所需要的時間,然後去設定空迴圈所要執行的次數,

比如:[cpp]view plain

copy

while

(true

)     

這種要估算cpu的執行速度,不太方便,準確性也不高。

《程式設計之美》裡面介紹一種好的方法。在執行的時候設定空迴圈的執行時間

int start_time=click();

while((click()-start_time)這樣就能使空迴圈執行runtime 毫秒

有了這個只要設定一下迴圈和sleep的比例就可以隨意控制任務管理器中的cpu的使用率了,

下面用任務管理器畫個弦函式影象

[cpp]view plain

copy

#include 

#include 

#include 

#include 

using

namespace

std;     

intmain()     

intj=0;     

intst_time;     

while

(true

)     

system("pause"

);     

return

0;     

}     

一些題 程式設計之美 CPU使用率

要解決的一些問題 1 程式設計之美上的第一種解法使用迴圈占用cpu,那麼需要根據cpu的頻率,和每個時鐘週期可以執行的指令數來確定乙個迴圈執行多少次再sleep。cpu頻率可以查計算機配置得到 那麼問題就是如何知道當前電腦在乙個時鐘週期內執行多少指令?ipc,instruction per cloc...

如何讓cpu的使用率成正弦函式

讓cpu畫正弦函式 把一條正弦曲線的弧度劃分為200等分進行抽樣,計算每個抽樣點的振幅 然後每隔300ms的時間取下乙個抽樣點,讓cpu工作對應振幅的時間 include windows.h include stdlib.h include math.h const int sampling cou...

程式設計之美 讓CPU佔用率曲線聽你指揮

author fox 前兩天在買 計算機程式設計藝術 中文版的時候,偶然發現 程式設計之美 這本書,當時翻了一下,看到 讓cpu佔用率曲線聽你指揮 這樣的題目確實讓人為之一動。寫一段 可以讓cpu占有率曲線畫出平滑的正弦曲線,有點意思 當然,最後沒有買這本書,雖然我可以肯定這是本好書。我從csdn讀...