2016-09-06 7 views
1

Я пытаюсь понять вывод Python профайлер во время работы Python asyncio на основе:понимания Python asyncio вывод профилировщика

Python3 asyncio profiler output

Я вижу, что моя программа тратит ~ 67% от времени, пытаясь получить блокировку потока.

  1. Является ли это нормальным в программах asyncio? Мое приложение однопоточное, я не откладываю любую работу на рабочие потоки и протоколирование минимально для консоли.

  2. Мое приложение тратит ~ 21% на выбор звонка. Означает ли это примерно то, что 20% времени выполнения простаивает (ожидая события или обратного вызова)?

ответ

1

Похоже, вы используете отладчик, который собирает данные из всех потоков. Ожидание условия получения переменной означает незанятое ожидание в пуле потоков для новых задач.

Время, проведенное в select, означает повторный простоя ожидания, но в этом случае он ждет активности сети.

Смежные вопросы