在多核盒子上使用繁忙循環應用程序可以嗎?在多核盒子上使用繁忙循環應用程序
我有一對夫婦的申請,其內容從POSIX消息隊列中的消息,執行處理並重新等待新的。但是,據我所知,mq_timedreceive是相當昂貴的操作,如果應用程序在O_NONBLOCK隊列上執行mq_receive,它的性能會更好(延遲更少)。因此,如果我爲非阻塞消息處理預留幾個CPU(從12開始),它會好嗎?
在多核盒子上使用繁忙循環應用程序可以嗎?在多核盒子上使用繁忙循環應用程序
我有一對夫婦的申請,其內容從POSIX消息隊列中的消息,執行處理並重新等待新的。但是,據我所知,mq_timedreceive是相當昂貴的操作,如果應用程序在O_NONBLOCK隊列上執行mq_receive,它的性能會更好(延遲更少)。因此,如果我爲非阻塞消息處理預留幾個CPU(從12開始),它會好嗎?
所有,是確定使用多核箱繁忙的循環應用程序?
無論設備如何,都可以使用忙碌的等待。不,這不是建議的,也不是,這很少有必要,但是確定 - 這是您的計算機,您的應用程序,爲此而努力!
不過,據我所知,mq_timedreceive是相當昂貴的操作,如果申請做則mq_receive上O_NONBLOCK排隊它的性能會更好(用更少的延遲)。所以如果我爲非阻塞消息處理預留了幾個CPU(從12開始),它會好嗎?
你有種疑問,只能用數據治癒。進行測量,看看它是否確實像您認爲的那樣昂貴。沒有什麼SO告訴你將會有一半的價值。您的應用程序的性能截止時間以毫秒,微秒或納秒(或每秒數百/千次/百萬次操作的吞吐量數)爲單位。這與目標硬件的功能相結合將決定哪些解決方案是合適的。
儘量避免它,既美觀(包括擴大您的計算能力)和節能(服務器在忙等待比在空閒等待消耗更多的權力)。 –