我基于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 使用率较低
为每个创建的客户端类使用新的 SSL 上下文
不要这样做 - 除非您确实需要不同的配置。最好共享上下文。事实上,这正是它们单独存在的原因。
考虑对执行器进行硬编码(而不是使用默认的类型擦除,
any_io_executor
)。有很多潜在的改进,但如果没有代码,没有人能知道。