如何使用libevent+多线程在C++和Windows下优化TCP连接数据包发送延迟?

新手上路,请多包涵

在12核心24g的电脑上,同时测试服务端和客户端,建立最多5万个TCP连接,总共发送600w个数据包,每个包4字节。多久发完算合理,每个包延迟多少毫秒合适。
延迟的计算:客户端发包,包的内容就是当前时间戳,服务端收到包以后,获取一下当前时间戳,相减得出延迟。

使用libevent+多线程,C++,windows。
主线程用于只监听tcp连接的事件循环,额外开8个线程用于数据的接收事件循环。
额外开一个线程,一直等待到所有包接收完后,将延迟数据存入日志文件。
目前大部分延迟都能控制100ms以内,但是会有将近10%的包延迟在100-1000ms以内。
目前的测试结果是无论建立1w个连接、2w个、3w个,都是这个情况。

阅读 599
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏