【问题标题】:Scalability of Boost.AsioBoost.Asio 的可扩展性
【发布时间】:2010-06-11 18:45:33
【问题描述】:

我很好奇其他人在可扩展性方面推动了 Boost.Asio。我正在编写一个可能使用近 1000 个套接字对象、少数接受器对象和数千个计时器对象的应用程序。我已经对其进行了配置,以便有一个线程池调用 io_service::run 并在适当的位置使用 strands 以确保我的处理程序不会相互踩踏。

我的平台是带有 Boost 1.39 的 Red Hat Enterprise Linux,但我并不反对升级到更新的 boost 版本。

【问题讨论】:

    标签: c++ linux boost boost-asio


    【解决方案1】:

    我们在几个 Linux 风格上使用 1.39 来处理计时器、网络(TCP 和 UDP)、串行(20 多行,其中两行以 500 kbps 运行)和 inotify 事件,虽然我们没有很多套接字连接,我们随时都有几百个异步计时器。它们正在生产中,对我们来说效果很好。如果我是你,我会制作一个快速原型并对其进行性能测试。

    Boost 1.43 声称在 ASIO 中有许多特定于 Linux 的性能改进,但我还没有为我们的产品对它们进行基准测试。

    【讨论】:

    • 好建议,我会做一些比较 Boost 1.39 和 1.43 的测量。
    【解决方案2】:

    我已经将 boost asio 与客户端/服务器一起使用,其中服务器整天都有数百个并发连接。每个会话都会在几个小时内进行大量的读/写操作。我建议使用最新版本的 boost asio。我不记得版本 1.39,但我遇到了旧版本的问题。当前版本的 boost asio 似乎很稳定。

    我所说的软件只能在 Windows 上运行,尽管这与你的情况不同。

    【讨论】:

    • 你使用多线程吗?还是只有一个大线程和异步权力?
    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2011-07-07
    • 2016-11-20
    相关资源
    最近更新 更多