PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
LinuxDev
[問題] pipe buffer大小
作者:
lalaboom
(lalaboom)
2015-03-24 23:02:29
大家好
我有一隻程式會一直產生資料,
透過pipe write寫到另一隻程式去,
但是另一隻call pipe read 的速度比較慢,
導致write端會block住 (goole查詢buffer大小為4K?),
有嚐試 write end 設成 nonblock,
但也只是return -1(try again)給我,
因為資料會一直產生,但因為上述原因導致丟資料,
請問我該如何設計呢?
改成FIFO會有幫助嗎?
謝謝 ~
作者:
asilzheng
(asil)
2015-03-24 23:38:00
先解決 read 的速度問題吧,為什麼他比較慢是可接受的?
作者:
lalaboom
(lalaboom)
2015-03-25 00:15:00
因為需要計算複雜的東西,基本上read端速率無法更改XD
作者:
james732
(好人超)
2015-03-25 11:39:00
read端不能先把資料收下來再算嗎?
作者:
lalaboom
(lalaboom)
2015-03-25 12:53:00
因為read end code不能改,只能在write end想辦法
作者: jaw109
2015-03-25 20:42:00
如果真的來不及那就只能把資料讀出來丟掉
作者:
leolarrel
(真.粽子無雙)
2015-03-27 15:29:00
write 端的程式要有"水庫"的概念,把來不及的送的東西暫放起來write端程式寫兩個程序或執行緒,一個專門儲存資料,一個專門把資料往管線丟.這概念十分簡單,最明顯的例子就是youtube的播放進度條
作者:
lalaboom
(lalaboom)
2015-03-29 02:06:00
謝謝Leo大,目前正是採取這種做法,但也因為muti thread產生的問題需要把兩端lock起來,所以效率有些降低
繼續閱讀
[問題] standalone driver是甚麼意思
weiching5566
[問題] Linux kernel挑戰
rtt2008
[問題] 3G module probe 問題
gn00618777
[問題] 關於 driver 和 irq
gn00618777
[問題] 修改資料夾權限
gamed
[核心] Kernel device tree dts檔的修改
h23456789
[問題] 請問makefile定義的問題
weiching5566
[問題] 有人有使用過i2c-tools 這套工具嗎?
NationST
Re: [問題] 如何判斷程式是否在背景?
cole945
[問題] linux嵌入式系統中的i2c問題
NationST
Links
booklink
Contact Us: admin [ a t ] ucptt.com