Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
1 мин
320

Профилирование Python-скриптов: как это делается?

Скрипты на Python применяются в самых различных задачах, и важно понимать, насколько эффективно они работают. Зачастую возникает необходимость проанализировать

Скрипты на Python применяются в самых различных задачах, и важно понимать, насколько эффективно они работают. Зачастую возникает необходимость проанализировать время выполнения программы: это помогает оптимизировать код и улучшить его производительность.

Пример: неэффективный код

Рассмотрим простой пример. Есть Python-скрипт, который выполняется слишком долго. В нем используется рекурсивная функция для вычисления факториала числа. На первый взгляд, код выглядит правильным, но почему-то он работает слишком медленно даже для небольших чисел.

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

Профилирование кода

Для решения подобных проблем в Python есть встроенный модуль cProfile. Он позволяет собирать статистику о частоте и продолжительности вызова различных функций в коде. Профилирование с его помощью позволяет выявить узкие места в коде и оптимизировать его.

Профилирование с помощью cProfile выглядит так:

import cProfile

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

cProfile.run('factorial(10)')

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

Курсы по программированию
Помогаем получить новую профессию с гарантией трудоустройства!
Подробнее
Курсы по программированию

Подведение итогов

Профилирование кода на Python — это важный этап оптимизации, который помогает улучшить производительность программы. Используя встроенный модуль cProfile, можно легко находить узкие места и оптимизировать код.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий