我有一个快速和肮脏的概念应用程序证明,我在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