首页 > 解决方案 > 为什么 Asyncio 在 socket.send(data) 中花费时间

问题描述

我正在分析我的 asyncio 应用程序并发现以下堆栈最终消耗了惊人的 CPU 时间(如 25%)

mycode.py:my_stream_writer.write(my_bytes)
asyncio/streams.py::self._transport.write(data)
asyncio/selector_events.py::self._sock.send(data)

鉴于这些是非阻塞套接字,我预计这不会占用太多时间。我能做些什么来减少这里的开销?我已经将消息批处理到几毫秒的垃圾箱中并尝试过uvloop.

这是继 Tornado 的类似问题之后的结果

标签: pythonpython-asynciononblocking

解决方案


推荐阅读