Repolode
plasma-umass

plasma-umass/scalene

Профилировщик Python, показывающий загрузку CPU и GPU, а также потребление памяти для каждой строки кода; может предлагать оптимизации с помощью ИИ.

Звёзды
13,551
Форки
445
Открытые issues
154
Последний коммит
6 дней назад

Что это?

Scalene — профилировщик программ на Python, который измеряет время работы CPU и NVIDIA GPU, а также выделение памяти на уровне строк и функций. Он разделяет время, затраченное на код Python и нативный код, например библиотеки на C/C++, а также показывает системное время, помогая находить узкие места, связанные с вводом-выводом. Scalene использует семплирование, а не трассировку, поэтому его накладные расходы ниже, чем у профилировщиков с инструментированием.

Помимо замеров времени, Scalene отслеживает рост потребления памяти и объём копируемых данных, отмечает строки, в которых возможны утечки памяти, и поддерживает асинхронный код, указывая время ожидания корутин. Результаты можно просматривать в веб-интерфейсе, работающем без подключения к интернету, в терминале или в отдельном HTML-файле. Scalene также можно запускать из VS Code или Jupyter; он поддерживает free-threaded версии Python 3.13t и 3.14t.

Scalene может передавать найденные при профилировании узкие места AI-провайдерам, например OpenAI, Azure, Amazon Bedrock или локальным моделям Ollama, чтобы получить предложения по оптимизации кода. Эти предложения формируются по запросу из графического интерфейса; для этого нужно указать собственные учётные данные.

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

  • 01Показывает время работы CPU для каждой строки, разделяя его на время выполнения кода Python, нативного кода и системное время.
  • 02Профилирует время работы NVIDIA GPU и выделение памяти, в том числе рост потребления памяти построчно.
  • 03Обнаруживает вероятные утечки памяти и измеряет объём копируемых данных между Python и библиотеками.
  • 04Показывает время ожидания await для каждой строки и уровень параллельного выполнения.
  • 05Предлагает веб-интерфейс, работающий без подключения к интернету, вывод в терминал и экспорт в отдельный HTML-файл.

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

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

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

  1. 1

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

    python3 -m pip install -U scalene
  2. 2

    Профилируйте программу

    scalene run your_prog.py
  3. 3

    Просмотрите профиль в браузере

    scalene view

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

  • В настоящее время профилирование GPU доступно только в системах на базе NVIDIA.
  • Для получения рекомендаций по оптимизации с помощью ИИ нужны ваши собственные учетные данные для провайдера, например OpenAI, Azure или Amazon Bedrock, либо локальной модели Ollama.

В подборках

Темы

#python#profiling#performance-analysis#memory-profiling#cpu-profiling#gpu#async#cpu#gpu-programming#memory-allocation

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

Что такое scalene?
Профилировщик Python, показывающий загрузку CPU и GPU, а также потребление памяти для каждой строки кода; может предлагать оптимизации с помощью ИИ. Scalene — профилировщик программ на Python, который измеряет время работы CPU и NVIDIA GPU, а также выделение памяти на уровне строк и функций. Он разделяет время, затраченное на код Python и нативный код, например библиотеки на C/C++, а также показывает системное время, помогая находить узкие места, связанные с вводом-выводом. Scalene использует семплирование, а не трассировку, поэтому его накладные расходы ниже, чем у профилировщиков с инструментированием.
scalene можно использовать бесплатно? Какая у него лицензия?
scalene распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
scalene всё ещё поддерживается?
Активно поддерживается. Последний коммит в scalene — 1 нояб. 2026 г..
Для чего можно использовать scalene?
Поиск строк, которые потребляют больше всего CPU или памяти в медленно работающем скрипте на Python. Определение того, связана ли задержка с кодом Python, нативными библиотеками или вводом-выводом. Поиск утечек памяти или ненужных преобразований массивов numpy в списки в конвейерах обработки данных. Профилирование асинхронных сервисов, чтобы понять, выполняются ли операции await последовательно или параллельно.
Как установить scalene?
Установите Scalene с помощью pip: python3 -m pip install -U scalene Профилируйте программу: scalene run your_prog.py Просмотрите профиль в браузере: scalene view
Где скачать scalene?
Исходный код и инструкции по установке — на GitHub: https://github.com/plasma-umass/scalene

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

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

Низкоуровневый по накладным расходам сэмплирующий профилировщик Java: собирает профили CPU, аллокаций, блокировок и нативной памяти без смещения safepoint.

9,2 тыс.+8 за неделю994C++Apache-2.0Активно поддерживаетсяОбновлён вчера