Типы профилирования
- CPU profiling — какая функция занимает больше всего времени выполнения
- Memory profiling — что потребляет больше всего памяти, где утечки
- I/O profiling — медленные SQL-запросы, сетевые вызовы
Инструменты
- PHP: Xdebug + KCacheGrind, Blackfire, Tideways
- Node.js: Chrome DevTools CPU профайлер, clinic.js
- Python: cProfile, py-spy, memory_profiler
Правило 80/20
Обычно 20% кода занимает 80% времени выполнения. Профайлер покажет эти 20%. Чаще всего узким местом оказываются не код приложения, а SQL-запросы без индексов.