Я пишу свой код, используя asyncio модуль с большим количеством информации/отладки регистрации (logging.FileHandler). Я обеспокоен тем, что широкое использование регистрации в asyncio снизит производительность моего приложения, поскольку ведение журнала блокирует работу.Накладные расходы на Python
Какое оптимальное решение для этого? Не удалось найти информацию о служебных данных.
Возможно, использование SocketHandler или MemoryHandler поможет? Для метрик я использую statsd (который также блокирует операцию, но должен быть очень быстрым), но меня больше беспокоит неблокирующее ведение журнала.
Пример кода:
@asyncio.coroutine
def creator_worker(self):
while not self.q.empty():
with (yield from self.semaphore):
sample = yield from self.q.get()
logging.debug('Got new sample, processing')
# start processing
Я знаю
import os
os.environ['PYTHONASYNCIODEBUG'] = '1'
import asyncio
Но это не то, что я ищу.
Спасибо