我很好奇其他人在可伸缩性方面推动了Boost.Asio的程度.我正在编写一个可能使用近1000个套接字对象,一些接受器对象和数千个计时器对象的应用程序.我已经配置它,以便有一个线程池调用io_service::run
并strand
在适当的位置使用s,以确保我的处理程序不会相互踩踏.
我的平台是带有Boost 1.39的Red Hat Enterprise Linux,但我并不反对升级到更新版本的boost.
我们在几种Linux版本上使用1.39用于定时器,网络(TCP和UDP),串行(20多行,其中两个以500 kbps运行)和inotify事件,虽然我们没有很多套接字连接,但我们在任何时候都有几百个异步计时器.它们正在生产中,对我们来说效果很好.如果我是你,我会制作一个快速原型并对其进行性能测试.
Boost 1.43声称在ASIO中有一些特定于Linux的性能改进,但我还没有对我们的产品进行基准测试.
我已经在客户端/服务器上使用了boost asio,其中服务器整天都有数百个并发连接.每个会话执行大量的读/写操作,每个操作几个小时.我建议使用最新版本的boost asio.我不记得版本1.39但我有旧版本的问题.当前版本的boost asio似乎很稳定.
我正在谈论的软件只在Windows上运行我也应该提到,尽管它与你的情况不同.