Профилируем код на python
Тезисы
Был я тут на одной python конференции и задал вопрос слушателям — кто как находит проблемы производительности в своем python коде. Из 35 ответивших оказалось:
  • больше половины просто читают код и находят глазами;
  • 10% вообще не сталкиваются с такими проблемами;
  • остальные используют различные профайлеры.

На этом воркшопе я бы хотел повлиять на это распределение и для этого предлагаю ознакомиться с его содержанием.

В начале мы рассмотрим применение CPU профайлинга для поиска узких мест. Посмотрим, как удобно считывать информацию при большом объеме отчетов. Как можно сначала локализовать до проблемных функций, а потом и до конкретных строк кода. В этом нам помогут такие инструменты как:
  • cProfile
  • line_profiler
  • py-spy

Далее стоит отдельно рассмотреть проблему потребления памяти нашим кодом на python и поискать места, где мы ее не освобождаем с помощью memory_profiler.

В завершении рассмотрим случай IO профайлинга для асинхронного кода, который бегает в БД и к другим сервисам. Посмотрим, насколько поддержка linux perf в python 3.12 нам поможет с этой задачей.

Каждый блок воркшопа будет сопровождаться разобранным примером и практическим заданием, которое вы сможете решить на своем ноутбуке. А по ходу задать вопросы, поделиться результатами и подискутировать на тему воркшопа с участниками и ведущим.
Был я тут на одной python конференции и задал вопрос слушателям — кто как находит проблемы производительности в своем python коде. Из 35 ответивших оказалось:
  • больше половины просто читают код и находят глазами;
  • 10% вообще не сталкиваются с такими проблемами;
  • остальные используют различные профайлеры.

На этом воркшопе я бы хотел повлиять на это распределение и для этого предлагаю ознакомиться с его содержанием.

В начале мы рассмотрим применение CPU профайлинга для поиска узких мест. Посмотрим, как удобно считывать информацию при большом объеме отчетов. Как можно сначала локализовать до проблемных функций, а потом и до конкретных строк кода. В этом нам помогут такие инструменты как:
  • cProfile
  • line_profiler
  • py-spy

Далее стоит отдельно рассмотреть проблему потребления памяти нашим кодом на python и поискать места, где мы ее не освобождаем с помощью memory_profiler.

В завершении рассмотрим случай IO профайлинга для асинхронного кода, который бегает в БД и к другим сервисам. Посмотрим, насколько поддержка linux perf в python 3.12 нам поможет с этой задачей.

Каждый блок воркшопа будет сопровождаться разобранным примером и практическим заданием, которое вы сможете решить на своем ноутбуке. А по ходу задать вопросы, поделиться результатами и подискутировать на тему воркшопа с участниками и ведущим.
Видеозапись теоретической части воркшопа
Появится здесь после конференции
Информация о спикере
Павел Филонов
Data Scientist, Независимый консультант
Руководил отделом Data Science в Kaspersky, участвовал в создании Max Patrol SIEM в PT.
Член ПК конференций PiterPy, TechTrain и C++Russia.
Преподаватель онлайн курсов OTUS.
Докладчик различных конференций:
  • Павел Филонов
    Data Scientist, Независимый консультант
    Руководил отделом Data Science в Kaspersky, участвовал в создании Max Patrol SIEM в PT.
    Член ПК конференций PiterPy, TechTrain и C++Russia.
    Преподаватель онлайн курсов OTUS.
    Докладчик различных конференций:
Внимание! Количество мест на воркшопе ограничено
Сможем принять максимум 20 участников. Регистрация на воркшоп будет открыта за неделю до начала конференции.
Все воркшопы