Repolode
pyutils

pyutils/line_profiler

Построчный профилировщик Python, который показывает, сколько времени занимает выполнение каждой строки декорированной функции.

Звёзды
3,252
Форки
143
Открытые issues
59
Последний коммит
20 дней назад

Что это?

line_profiler измеряет время выполнения каждой строки внутри функций Python. Он пригодится, когда профилирование на уровне функций уже выявило медленную функцию и нужно понять, на какие именно строки уходит время. Функции помечаются декоратором @profile, а по завершении скрипта выводится сводка по каждой строке: число выполнений, затраченное время и доля от общего времени.

Рекомендуемый порядок работы: импортировать profile из line_profiler, декорировать нужные функции и перед запуском скрипта задать переменную окружения LINE_PROFILE=1. В пакет также входит kernprof — вспомогательная утилита командной строки, поддерживающая прежний сценарий работы kernprof -lv. Пакет устанавливается через pip и требует Python версии 3.10 или новее.

Этот репозиторий — поддерживаемый форк, на который теперь указывает пакет line_profiler в PyPI; он продолжает работу над исходным проектом rkern. В документации описаны основы использования, приведены примеры и ответы на часто задаваемые вопросы.

Ключевые возможности

  • 01Показывает число выполнений, затраченное время и его долю для каждой строки декорированной функции.
  • 02Позволяет включить профилирование с помощью декоратора @profile и переменной окружения LINE_PROFILE.
  • 03Включает утилиту командной строки kernprof.
  • 04Устанавливается из PyPI через pip; доступны wheel-пакеты для распространённых платформ.
  • 05Опциональная интеграция с IPython через extra ipython.

Сценарии использования

  • Поиск строк внутри медленной функции Python, на выполнение которых уходит больше всего времени.
  • Профилирование скриптов для обработки данных или численных расчётов перед оптимизацией.
  • Проверка влияния изменений кода на конкретные строки ресурсоёмкой функции.

Быстрый старт

  1. 1

    Установите line_profiler с помощью pip

    pip install line_profiler
  2. 2

    Импортируйте profile и добавьте декоратор к функции, которую хотите профилировать

  3. 3

    Установите LINE_PROFILE=1 и запустите скрипт как обычно

Что важно знать

  • Требуется Python 3.10 или новее; для более старых версий Python нужны более старые релизы.
  • Для установки из исходного кода может потребоваться компилятор C, а для git checkout также нужен Cython.

Темы

Частые вопросы

Что такое line_profiler?
Построчный профилировщик Python, который показывает, сколько времени занимает выполнение каждой строки декорированной функции. line_profiler измеряет время выполнения каждой строки внутри функций Python. Он пригодится, когда профилирование на уровне функций уже выявило медленную функцию и нужно понять, на какие именно строки уходит время. Функции помечаются декоратором @profile, а по завершении скрипта выводится сводка по каждой строке: число выполнений, затраченное время и доля от общего времени.
line_profiler можно использовать бесплатно? Какая у него лицензия?
line_profiler распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
line_profiler всё ещё поддерживается?
Активно поддерживается. Последний коммит в line_profiler — 18 окт. 2026 г..
Для чего можно использовать line_profiler?
Поиск строк внутри медленной функции Python, на выполнение которых уходит больше всего времени. Профилирование скриптов для обработки данных или численных расчётов перед оптимизацией. Проверка влияния изменений кода на конкретные строки ресурсоёмкой функции.
Как установить line_profiler?
Установите line_profiler с помощью pip: pip install line_profiler Импортируйте profile и добавьте декоратор к функции, которую хотите профилировать Установите LINE_PROFILE=1 и запустите скрипт как обычно
Где скачать line_profiler?
Исходный код и инструкции по установке — на GitHub: https://github.com/pyutils/line_profiler

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Библиотека .NET для превращения методов C# в воспроизводимые бенчмарки с автоматическим прогревом, статистикой и отчетами о результатах.

11,5 тыс.+2 за неделю1,1 тыс.C#MITАктивно поддерживаетсяОбновлён 19 часов назад

Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов.

15,4 тыс.+12 за неделю486PythonApache-2.0Активно поддерживаетсяОбновлён 4 дня назад