uniprof

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

Поделиться