我正在运行一个相当复杂的Tornado TCP服务器应用程序,我想了解一下需要花多少时间才能提高性能。我使用的是Tornado v5+,所以Tornado由Asyncio支持。
我在我的事件循环线程上运行了一个统计分析器,发现像下面这样的堆栈很常见:
tornado/ioloop.py::run_sync
asyncio/asyncio.py::start
asyncio/base_events.py::run_forever
asyncio/base_events.py::_run_once
asyncio/events.py::_run
torando/ioloop.py::<lambda>
torando/platform/asyncio.py::add_callback
asyncio/base_events.py::call_soon_threadsafe
asyncio/selector_events.py::_write_to_self
csock.send(b'\0')
和
tornado/ioloop.py::run_sync
asyncio/asyncio.py::start
asyncio/base_events.py::run_forever
asyncio/base_events.py::_run_once
asyncio/events.py::selector_events.py::_read_from_self
data = self._ssock_recv(4096)
无论是在活动状态还是在安静状态下,这都会占用大约40%的计算时间。我应该关心它们吗,或者当系统等待发生什么事情时,这些只是等待状态吗?