Низкоуровневый по накладным расходам сэмплирующий профилировщик Java: собирает профили CPU, аллокаций, блокировок и нативной памяти без смещения safepoint.
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
Установите Scalene с помощью pip
python3 -m pip install -U scalene - 2
Профилируйте программу
scalene run your_prog.py - 3
Просмотрите профиль в браузере
scalene view
Что важно знать
- В настоящее время профилирование GPU доступно только в системах на базе NVIDIA.
- Для получения рекомендаций по оптимизации с помощью ИИ нужны ваши собственные учетные данные для провайдера, например OpenAI, Azure или Amazon Bedrock, либо локальной модели Ollama.
В подборках
Темы
Частые вопросы
- Что такое 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 обновляется ежедневно.
Похожие проекты
Платформа NVIDIA для CUDA на Rust: runtime-крейты для хоста и модели SIMT и Tile для написания GPU-ядер на Rust.
Сэмплирующий профилировщик Python-программ, который подключается к работающим процессам без изменения кода и перезапуска.
Инструмент командной строки и веб-интерфейс для визуализации и анализа данных профилирования в формате profile.proto.
Бесплатный инструмент для Windows, который помогает выявлять проблемы с производительностью CPU и памяти, особенно в коде, работающем на .NET runtime.
Встраиваемый в Python язык программирования, который JIT-компилирует численные ядра для запуска на CPU и GPU, включая CUDA, Vulkan и Metal.