0
我嘗試使用ncurses庫編寫崔貪吃蛇遊戲和C.一切都工作正常,但是當我運行該程序的CPU使用率拍攝到50%(從8ish或更低開始)C時間延遲豬CPU
在評論了代碼的各個部分之後,我確定了主要的罪魁禍首是我使用的時間延遲函數,它確保了每90毫秒繪製一個新的幀。 (我從網站獲得的功能的源)
void waitFrom(clock_t init, long pauseclocks)
{
while((clock() - init) < pauseclocks);
}
,並在主要功能:
clock_t start;
long pause = 90 * (CLOCKS_PER_SEC/1000);
while(1)
{
start = clock();
//game code
waitFrom(start, pause);
}
你的問題是?繁忙的循環使用CPU,這就是它的工作原理。 – univerio
你期望什麼?即使只是在循環內調用sched_yield也能改善這一點。 –
也許最好是編寫代碼來處理由計時器驅動的事件。否則,也許使用[nanosleep](http://www.gnu.org/software/libc/manual/html_node/Sleeping.html)會減少CPU使用率。 –