2012-04-24 114 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 /秒的目標。