gpt4 book ai didi

c++ - boost 协程是否比 Boost.Asio 的异步操作更快?或者在什么情况下协程可以更快?

转载 作者:行者123 更新时间:2023-11-28 04:05:03 25 4
gpt4 key购买 nike

在我的例子中,我有一个服务器可以处理大量的 sip 调用(同时处理 3000 个)。它发送和接收 SIP 数据包和大量 RTP 数据包(每 20 毫秒一个数据包)。

现在一切都通过 Boost.Asio 以异步方式与回调一起工作。

我现在面临优化问题。已经做了一些事情来让它工作得更快(例如,从动态分配过渡到池分配,改变获取时间的方法等),但 boost 是适度的。

函数分析器在顶部显示了大量 mutex_locks,因此我认为它与所有这些异步调用有关。通过浏览网络,我发现协程可以替代回调。据我了解,它们使代码看起来更吸引人、更简单,同时仍保持异步性质。

但是它的性能呢?协程是否会比异步调用和回调更快(至少在我的情况下)?

这是探查器的屏幕截图: Profiler output

最佳答案

协程并不比异步调用快,因为它们对于 Asio 来说是一样的。

主要区别在于您编写组合操作的方式:使用 coros 时,您将隐式 coro 堆栈作为“闭包”获得,否则您必须创建类来执行相同操作。 (取决于您如何完成后者,协程可能如果他们更有效地完成工作,最终会更快。虽然这些都不是您描述的瓶颈)

关于c++ - boost 协程是否比 Boost.Asio 的异步操作更快?或者在什么情况下协程可以更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58871594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com