group-telegram.com/blog_toxa/337
Last Update:
Профилировщики
Есть такой момент: код работает 1 час вместо 1 минуты. Это вообще нормально?
У меня был скрипт, который работал ну жутко долго. Из "замечательных" его свойств было:
— Обилие библиотек, которые делали одно и то же;
— Тонна строк кода, которые сложно уместить в контекст.
Примечательно и другое: всего 10000 семплов прогонялось в скрипте, а занимало целый час. Моё алгоритмическое чутьё подозревает степенную сложность у алгоритмов в коде
Я достаточно давно не использовал подобный инструментарий для Python кода, а потому вообще всё забыл. Погуглил, наткнулся на Austin — и правда кайфанул.
Во-первых, как мне показалось, он практически не влияет на код. Видимо, профилировка методом сбора статистик из стека вызовов сделана классно.
Во-вторых, установил и запустил — из коробки работает норм. Не нужно настраивать, читать 100500 толмутов документации, чтобы сделать запуск.
В-третьих, реалтайм построение flamegraph. Запускаешь, смотришь, останавливаешься в любой момент — и сразу видно, где всё тормозит.
Также в тулзе есть профилировщик памяти, но я юзал для этих целей memray (тож рекомендую).
В результате, я минут за 5 нашёл проблемные места и получил свою заветную одну минуту времени работы! Скорее всего вы даже лучше меня знаете, что лучше всего использовать для отладки проблем с производительностью приложений на Python. Но я считаю, что этот фреймворк — абсолютное величие для тех, кто хочет что-то быстренько ускорить на коленке.
И вот какой у меня возник вопрос: сколько бы эту задачу делал ИИ-агент и вообще смог ли бы он её сделать?