PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
LinuxDev
[問題] 如何控制程式執行時間
作者:
hl4
(Zec)
2015-10-22 00:49:08
我有一段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(),但是沒有效果。
也有想過那些時間是不是剛好沒有被執行到還是怎樣,不過還沒想到怎麼驗證。
謝謝。
作者:
leolarrel
(真.粽子無雙)
2015-10-22 14:23:00
提供的資訊太少無法幫你隔空抓藥,不過我能確定的是在linux的世界,串流的資料維護是串流裝置跟串流驅動程式該負責的事情,你解bug的重點不應是考慮執行時間
作者:
hl4
(Zec)
2015-10-22 17:59:00
串流的驅動程式細節都被包裝起來了
作者:
leolarrel
(真.粽子無雙)
2015-10-22 18:58:00
那就請負責驅動程式的廠商解bug,如果廠商不願意解,就叫你主管去施壓,這已經是政治性問題不是技術問題了,因為基本上你程式的邏輯大體上沒有問題...
繼續閱讀
[問題] shell background 差異
shihyuyao
[問題] PCIe suspend
mcdrumer
[問題] fork 透過pipe 做write/read
yshihyu
[問題] qemu 開多個 terminal
yshihyu
[問題] gdb backtrace
gigigigi
[問題] kernel send signal to user space
yshihyu
[問題] 關於file descriptor的問題?
kyle
[問題] 如何使thread擁有高priority卻不影響wifi
wtchen
[問題] 反組譯後重新組譯
a07051226
[心得] 用Raspberry pi 做四軸飛行器
wtchen
Links
booklink
Contact Us: admin [ a t ] ucptt.com