我剛剛寫了一個簡單的代碼,以hh:mm:ss格式顯示時間。該代碼是從性能角度看有什麼不對?
#include <stdio.h>
#include <time.h>
int main()
{
time_t curtime;
int h, m, s, ps;
struct tm *x = localtime(&curtime);
time(&curtime);
ps = (*x).tm_sec;
while(1)
{
time(&curtime);
x = localtime(&curtime);
h = (*x).tm_hour;
m = (*x).tm_min;
s = (*x).tm_sec;
if(s != ps)
{
ps = s;
printf("%02d:%02d:%02d\n", h, m, s);
}
}
return(0);
}
代碼編譯並運行正常。然而,CPU使用率似乎非常高。當我使用'top'查看CPU使用率時,它顯示cpu%爲96-100%(我可以聽到電腦風扇大聲)。如何從性能角度改進代碼,使代碼簡單而簡潔?
請參閱[是否可以問代碼優化問題幫助?](http://meta.stackoverflow.com/a/286559/1079354)以查看您缺少的內容。現在,沒有什麼我能看到的,會導致不良表現(除了那美妙的無限循環)。 – Makoto
你正在退出'while(1)'? – Gopi
雖然不是我所關注的。好吧,我可以添加一些條件說「如果(PS == 50)休息」。這會使它成爲更好的代碼嗎?這不是我正在談論的while循環。 CPU使用率仍然很高。 – anupamb