[問題] 如何控制程式執行時間
我有一段c code大概是這樣的架構:
while (1) {
select(fd); // 等待的是串流資料,時間內沒有讀取的話會漏失一筆資料
if (fd is triggerd) {
function1();
function2();
function3();
}
}
這時運作大致都是正常的,不會漏掉資料,loop一次大約3000us。
但是當我在function之間加了幾個printf之後,就開始偶發性的漏失串流資料。
漏失資料的該次loop時間會暴增到300000us左右,但是其他次loop時間則很穩定。
而這暴增出來的時間會隨機發生於三個function其中之一。
時間是用gettimeofday()來測量的。
從top觀察到的結果來看,cpu和memory使用率都很低。
我有猜過是不是io buffer導致的,並試著加上fflush()和fsync(),但是沒有效果。
也有想過那些時間是不是剛好沒有被執行到還是怎樣,不過還沒想到怎麼驗證。
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.198.128
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1445446151.A.CD0.html
→
10/22 14:23, , 1F
10/22 14:23, 1F
→
10/22 14:24, , 2F
10/22 14:24, 2F
→
10/22 14:25, , 3F
10/22 14:25, 3F
→
10/22 17:59, , 4F
10/22 17:59, 4F
→
10/22 18:58, , 5F
10/22 18:58, 5F
→
10/22 18:59, , 6F
10/22 18:59, 6F
→
10/22 18:59, , 7F
10/22 18:59, 7F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章