
uniprof
indragiekMIT
404 звёзд11 форков
Uniprof — универсальный CPU-профилировщик. Вы запускаете команду, он сам определяет среду выполнения (Python, Node.js, JVM, .NET, Ruby, PHP, нативный код) и запускает подходящий профилировщик. Никаких изменений кода и установки дополнительных зависимостей в целевое приложение.
Uniprof приводит результаты всех профилировщиков к единому формату и проводит статистический анализ. Вы сразу видите узкие места (hotspots) — функции, которые потребляют больше всего процессорного времени. Инструмент работает через командную строку и в режиме MCP-сервера. Благодаря MCP AI-ассистенты могут запускать профилирование по вашей просьбе и показывать результаты прямо в диалоге.
Установка
npx -y uniprofХарактеристики
Общее
- СтатусСообщество
- Разработчикindragiek
- ЛицензияMIT
Технологии
- ЯзыкиTypeScript
- Транспортstdio
Описание
Возможности
- Профилирование Python — через py-spy (Python 3.7+).
- Профилирование Node.js — через 0x (Node 14+).
- Профилирование Ruby — через rbspy (Ruby 2.5+).
- Профилирование PHP — через Excimer (PHP 7.2+).
- Профилирование JVM — через async-profiler (Java 8+).
- Профилирование .NET — через dotnet-trace (.NET 5+).
- Профилирование BEAM (Erlang/Elixir) — через perf (OTP 24+).
- Профилирование нативных приложений: macOS — через Instruments, Linux — через perf.
- Работа с приложениями в Docker-контейнерах без дополнительной настройки.
- Автоматический выбор профилировщика под команду — не нужно ничего указывать вручную.
- Статистический анализ и выявление hotspots на основе собранных данных.
- Единый формат вывода — не требуется изучать синтаксис каждого профилировщика по отдельности.
Как подключить
Установка uniprof не нужна, он запускается через npx. Убедитесь, что Node.js (14+) установлен. Выполните команду в терминале:
npx -y uniprof python script.py
Для работы через MCP пропишите сервер в конфигурации вашего клиента. Пример для Claude Desktop:
{ "mcpServers": { "uniprof": { "command": "npx", "args": ["-y", "uniprof"] } } }
Сохраните изменения и перезапустите клиент. Сервер запустится автоматически. Ассистент сможет профилировать приложения по вашему запросу.
Примеры запросов
- «Запусти профилирование Python-скрипта script.py и покажи узкие места».
- «Найди самые медленные функции в Node.js-приложении, которое стартует через npm start».
- «Отпрофилируй JVM-приложение myapp.jar в течение 30 секунд и укажи, какие методы потребляют больше всего CPU».
- «Сравни производительность двух версий программы: v1 и v2».
Технические детали
- Язык: TypeScript
- Транспорт: stdio
- Лицензия: MIT
- Платформы: macOS, Linux (поддержка WSL2 для Windows)
- Зависимости: Docker (для контейнеров), Xcode (для нативного профилирования macOS)
- Совместимые MCP-клиенты: Claude Desktop, Cline, Goose и любые другие, поддерживающие stdio