就我而言,我有一台服务器可以处理大量的 sip 呼叫(同时处理 3000 个)。它发送和接收 SIP 数据包和大量 RTP 数据包(每 20 毫秒一个数据包)。
现在一切都通过 Boost.Asio 与回调异步工作。
我现在面临一个优化问题。已经做了一些事情来让它工作得更快(例如从动态分配过渡到池分配,改变获取时间的方法等),但加速是适度的。
函数分析器在顶部显示了大量的 mutex_lock,所以我认为这与所有这些异步调用有关。浏览网页时,我发现协程可以替代回调。据我了解,它们使代码看起来更有吸引力和简单,同时仍然保持异步性质。
但是它的性能呢?协程会比异步调用和回调更快(至少在我的情况下)?
这是分析器的屏幕截图: Profiler output