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