Инструменты для анализа производительности и отладки
Когда программа падает, «тормозит» или жрёт память, недостаточно print(). Нужны отладчик (пошаговое выполнение, точки останова), профайлер (где тратится CPU/RAM) и в продакшене — наблюдаемость (метрики, логи, трейсы).
Системные метрики (CPU, RAM, диск, сеть)
| Инструмент | Платформа | Назначение |
|---|---|---|
| htop / btop | Linux, macOS | Интерактивный список процессов |
| vmstat, iostat, mpstat | Linux (sysstat) | Память, диск, CPU в CLI |
| dstat | Linux | Сводка ресурсов в одном окне |
| Process Explorer | Windows | Расширенный диспетчер задач |
| CrystalDiskMark | Windows | Тест скорости диска |
Linux: трассировка и профилирование ядра
strace
Трассировка системных вызовов процесса — что реально спрашивает у ядра (файлы, сокеты).
strace -f -e open,read,write -p PID
strace -c ./myapp # сводка по syscall
perf
Аппаратные счётчики CPU: циклы, cache miss, ветвления.
perf record -g ./myapp
perf report
eBPF / bpftrace
Динамическая трассировка без пересборки ядра; основа современных observability-агентов.
lsof
Какие файлы и сокеты открыты процессом: lsof -i :443.
sysdig
Объединяет идеи strace, tcpdump и метрик контейнеров.
Отладка C, C++, нативного кода
gdb (GNU Debugger)
gdb ./program
(gdb) break main
(gdb) run
(gdb) next
(gdb) print variable
LLDB
Отладчик LLVM; по умолчанию в Xcode, подходит для C/C++/Swift.
Valgrind
Динамический анализ: утечки памяти, обращения вне буфера (memcheck), гонки (helgrind).
valgrind --leak-check=full ./program
WinDbg
Отладка дампов и ядра Windows; расширения для .NET и native.
ProcDump (Sysinternals)
Снятие дампа по порогу CPU или при исключении.
.NET
| Инструмент | Описание |
|---|---|
| Visual Studio Diagnostic Tools | CPU, память, события GC в IDE |
| dotTrace / dotMemory (JetBrains) | Профилирование и heap (.NET) |
| PerfView (Microsoft) | ETW-трассы, GC, JIT (Windows) |
JVM (Java, Kotlin)
| Инструмент | Описание |
|---|---|
| JProfiler, YourKit | Коммерческие профайлеры CPU/RAM |
| Java VisualVM, JConsole | Входят в JDK / отдельно |
| Async Profiler | Flame graphs с низким overhead |
| MAT (Eclipse) | Анализ heap-дампов |
| JFR | Flight Recorder в современных JDK |
Python
# Стандартная библиотека
python -m cProfile -o stats.prof script.py
# Без остановки процесса
py-spy record -o profile.svg --pid PID
memory_profiler — построчное потребление RAM; Scalene — CPU/GPU/RAM по строкам.
Go
pprof встроен в runtime:
go test -cpuprofile=cpu.prof
go tool pprof cpu.prof
Сеть
| Инструмент | Назначение |
|---|---|
| tcpdump | Захват пакетов в CLI |
| Wireshark | Разбор pcap, фильтры display |
| Prometheus + node_exporter | Метрики хоста и сервисов |
Observability в продакшене
| Компонент | Роль |
|---|---|
| Prometheus | Сбор и хранение метрик (pull) |
| Grafana | Дашборды, алерты |
| OpenTelemetry | Единый SDK для traces/metrics/logs |
| LTTng, SystemTap | Низкоуровневая трассировка Linux |
| Netdata | Быстрый локальный дашборд |
:::tip Три сигнала Метрики — «сколько и как быстро». Логи — «что случилось». Трейсы — «какой путь запроса через сервисы». Вместе они сокращают время поиска узкого места. :::
Веб и front-end
| Инструмент | Метрики |
|---|---|
| Chrome DevTools → Performance | FPS, JS, layout, LCP |
| Firefox Profiler | Смешанные стеки JS + native |
| Lighthouse | Core Web Vitals, доступность |
Нагрузочное тестирование
Связывает профилирование с нагрузкой: JMeter, k6, Gatling — см. тестирование.
Визуализация профилей
Flame graph (Brendan Gregg) — иерархия стеков: ширина = доля времени. Строится из вывода perf, py-spy, Async Profiler, pprof.
Мобильные платформы
| Инструмент | Платформа |
|---|---|
| Xcode Instruments | iOS, macOS |
| Android Profiler | Android Studio |
| Intel VTune / AMD uProf | Низкоуровневый CPU (x86) |
См. также
- Мониторинг — эксплуатация и SRE-стек
- Отладка в энциклопедии
- Утилиты — Wireshark, Process Explorer, sysstat
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Интегрированные среды разработки (IDE) — редактор, отладчик, сборка и Git в одном окне. Обзор VS Code, JetBrains, Visual Studio и специализированных сред. Полезные программы разработчика: архиваторы, терминалы, Git, Docker, анализ сети, медиа и системная диагностика — с кратким описанием и ссылками. Cursor — IDE на базе VS Code с AI-агентами, чатом и встроенным браузером для итеративной разработки. Установка, режимы и ограничения.IDE
Утилиты
Cursor