Набор инструментов для отладки iOS-приложений прямо в приложении: плавающее меню помогает проверять сетевой трафик, производительность, представления, логи и данные приложения.
bloomberg/memray
Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов.
- Звёзды
- 15,389
- Форки
- 480
- Открытые issues
- 37
- Последний коммит
- позавчера
Что это?
Memray — профилировщик памяти для Python. Он записывает выделения памяти, выполняемые Python-кодом, нативными модулями расширения на C/C++ и самим интерпретатором Python, а затем формирует отчёты: flame graph, таблицы, деревья и сводки в терминале. Обычно его запускают как инструмент командной строки с помощью `memray run`, но его также можно использовать как библиотеку через контекстный менеджер Tracker.
В отличие от профилировщиков с семплированием, Memray отслеживает каждый вызов функции, поэтому стеки вызовов записываются точно. Нативное отслеживание включается отдельно с помощью `--native` и добавляет в результаты фреймы C/C++, что полезно при работе с такими расширениями, как numpy и pandas. Режим реального времени показывает выделения памяти в интерфейсе терминала, пока программа работает, а attach позволяет начать отслеживание уже запущенного процесса.
Memray помогает решать распространённые проблемы с памятью: находить код, из-за которого растёт потребление памяти, выявлять утечки и определять участки, активно выделяющие память. Он поддерживает потоки Python и нативные потоки. Работает только на Linux и macOS и требует Python 3.9 или новее. Плагин pytest-memray доступен как отдельный проект.
Ключевые возможности
- 01Отслеживает каждый вызов функции для точного восстановления стеков вызовов, в отличие от профилировщиков с семплированием
- 02Отслеживает выделения памяти в Python-коде и нативных расширениях на C/C++ с помощью `--native`
- 03Формирует flame graph, HTML-таблицы, деревья и сводки в терминале
- 04Интерфейс терминала для просмотра выделений памяти в реальном времени, пока программа работает
- 05Позволяет подключиться к уже запущенному процессу Python
- 06Можно использовать как библиотеку Python через контекстный менеджер Tracker
Сценарии использования
- Поиск причин высокого потребления памяти в сервисе или скрипте на Python
- Выявление утечек памяти в долго работающих приложениях
- Поиск участков кода, активно выделяющих память
- Профилирование программ на Python, использующих такие расширения на C, как numpy и pandas
Быстрый старт
- 1
Установите Memray из PyPI с помощью pip
python3 -m pip install memray - 2
Запустите скрипт с профилировщиком, чтобы записать выделения памяти
python3 -m memray run my_script.py - 3
Создайте HTML-график «пламя» по файлу с результатами
memray flamegraph memray-my_script.py.2369.bin
Что важно знать
- Работает только в Linux и macOS; установить программу в Windows нельзя.
- Для сборки из исходного кода требуются системные библиотеки, такие как libunwind, lz4 и libdebuginfod.
Темы
Частые вопросы
- Что такое memray?
- Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов. Memray — профилировщик памяти для Python. Он записывает выделения памяти, выполняемые Python-кодом, нативными модулями расширения на C/C++ и самим интерпретатором Python, а затем формирует отчёты: flame graph, таблицы, деревья и сводки в терминале. Обычно его запускают как инструмент командной строки с помощью `memray run`, но его также можно использовать как библиотеку через контекстный менеджер Tracker.
- memray можно использовать бесплатно? Какая у него лицензия?
- memray распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- memray всё ещё поддерживается?
- Активно поддерживается. Последний коммит в memray — 19 окт. 2026 г..
- Для чего можно использовать memray?
- Поиск причин высокого потребления памяти в сервисе или скрипте на Python Выявление утечек памяти в долго работающих приложениях Поиск участков кода, активно выделяющих память Профилирование программ на Python, использующих такие расширения на C, как numpy и pandas
- Как установить memray?
- Установите Memray из PyPI с помощью pip: python3 -m pip install memray Запустите скрипт с профилировщиком, чтобы записать выделения памяти: python3 -m memray run my_script.py Создайте HTML-график «пламя» по файлу с результатами: memray flamegraph memray-my_script.py.2369.bin
- Где скачать memray?
- Исходный код и инструкции по установке — на GitHub: https://github.com/bloomberg/memray
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Современный менеджер пакетов и зависимостей Python для управления venv, lockfile и сборками на основе метаданных PEP 621 и PEP 517.
Платформа автоматизации умного дома с открытым исходным кодом: работает локально и ставит во главу угла контроль и приватность, часто — на Raspberry Pi или локальном сервере.
Локальная AI-система памяти: хранит историю диалогов без изменений и находит нужное с помощью семантического поиска; доступна как MCP-сервер и CLI.
MCP-сервер, с помощью которого coding agents управляют запущенным браузером Chrome и анализируют его через Chrome DevTools для отладки и оценки производительности.
Интерактивный прокси для перехвата HTTP-трафика с поддержкой TLS и интерфейсами для консоли, командной строки и браузера.