2012-04-24 117 views
1

在我的应用程序中,我必须发送每个连接约10 kb/s。所有数据包都放在std::deque。一个线程遍历deque并通过asio::async_write发送数据包数据。Boost asio :: async_write发送数千个小包

我的问题是我可以在一个线程中同时处理多少个连接?我可以发送20兆字节/秒吗?

+0

对于一个相关的问题,请参阅http://stackoverflow.com/questions/3025373/scalability-of-boost-asio – TemplateRex 2012-04-24 06:55:58

+0

关于这个问题的答案不要说我可以每秒发送兆字节的小数据块。 – 2012-04-24 07:22:03

+0

取决于数据包的大小,20MB /秒/线程是可能的。你总是可以使用几个线程而不是一个线程并利用多个核心。 – 2012-04-24 07:33:08

回答

2

该Boost.Asio作者Kohlhoff的website有一个performance page。看看Linux-perf-11的图形,他在单个CPU上有1000个连接,吞吐量达到〜300 Mb/sec,远高于每个连接10kb /秒的目标。