我有一個快速和骯髒的概念應用程序證明,我在C#中編寫,它從網絡讀取高數據速率多播UDP數據包。由於各種原因,完整的實現將用C++編寫,我正在考慮使用boost asio。 C#版本使用一個線程來使用阻塞讀取來接收數據。如果計算機負載過重(通常是在另一個線程中處理這些數據包),我在丟棄數據包時遇到了一些問題。Boost asio異步vs阻塞讀取,udp速度/質量
我想知道的是,如果在boost中使用async read操作(在Windows中使用重疊io)將有助於確保我接收數據包和/或減少接收數據包所需的CPU時間。單線程執行阻塞讀取操作非常簡單,使用異步讀取似乎複雜度有所提高,但我認爲如果在重負載系統上提供更高的性能或丟棄更少的數據包,這將是值得的。目前數據速率應不高於60Mb/s。
這是一個可怕的答案... – snb 2017-06-22 17:01:25