多个 SSL 客户端连接的 CPU 使用率 Boost.ASIO

问题描述 投票:0回答:1

我基于Boost.Asio制作了一个SMTPS客户端类。我只是想知道在使用它们发送电子邮件时我应该期望 CPU 使用率如何。现在作为压力测试,我在 io_context 上排队 15 个,然后运行它,CPU 峰值到大约 6-8%,通过 top 观察进程(我在 centos7 上)。

在不良设计方面我应该寻找任何明显的东西吗?这种 CPU 使用率是否值得关注?我知道 boost asio 应该非常快速和高效。

代码注释:

  • 为每个创建的客户端类使用新的 SSL 上下文

  • 构造函数采用 ip::tcp::socket 作为参数,并使用 std::move 设置类的套接字,然后设置 ssl 流

  • 所有调用都是异步的。我在编写这段代码时遵循了 c++11 boost 示例

我确保所有调用都是异步的,我预计这会导致 CPU 使用率较低

c++ sockets boost c++20 boost-asio
1个回答
0
投票

为每个创建的客户端类使用新的 SSL 上下文

不要这样做 - 除非您确实需要不同的配置。最好共享上下文。事实上,这正是它们单独存在的原因。

考虑对执行器进行硬编码(而不是使用默认的类型擦除,

any_io_executor
)。有很多潜在的改进,但如果没有代码,没有人能知道。

© www.soinside.com 2019 - 2024. All rights reserved.