📌 ruby/debug (rdbg)
Сучасний офіційний дебагер, який замінив застарілий стандартний
debug.rb. На відміну від Pry, він написаний на C-API та майже не просаджує перформанс поза точками зупину.Головні фічі: native remote дебаг (через TCP або UNIX-сокети), легка інтеграція з VS Code / Chrome DevTools, tracepoints та watch expressions.
Швидкий старт: просто вставте у код
binding.break (або аліас `debugger`).📌 stackprof
Семплінговий call-stack профайлер. Його головна фішка — низький overhead, що дозволяє знімати метрики без ризику «покласти» систему під навантаженням.
Що фіксить: знаходить CPU bottlenecks. Допомагає розібратися, чому метод чи ендпоінт відпрацьовує занадто довго, та вміє візуалізувати це через Flamegraphs.
Швидкий старт:
StackProf.run(mode: :cpu, out: 'tmp/stackprof.dump') { ваші_обчислення }
📌 memory_profiler
Найкращий спосіб залізти під капот обробки об‘єктів у купі (heap).
Що фіксить: чітко показує розподіл між allocated (всього створено) та retained (залишилися в пам‘яті) об‘єктами. Допомагає знайти рядки, які варто оптимізувати через
#freeze або уникнення зайвих алокацій у Sidekiq-воркерах.Швидкий старт:
MemoryProfiler.report { ваші_обчислення }.pretty_print
📌 derailed_benchmarks
Ультимативний пакет бенчмарків для Rails-застосунків.
Що фіксить: аналізує boot time та пам‘ять, яку «жере» кожна залежність із вашого Gemfile ще на етапі реквайру. Вміє ганяти HTTP-реквести під навантаженням та будувати тренди споживання RAM.
Швидкий старт (дізнатися, який гем з‘їв пам’ять при старті):
bundle exec derailed bundle:mem
📚 Premature optimization is the root of all evil. Не оптимізуйте код навмання. Спочатку зберіть профілі, знайдіть конкретне вузьке місце, а вже потім пишіть фікс.
💬 Який інструмент останнім часом врятував ваш продакшн? Діліться кейсами в коментарях!
TikTok | Instagram | Telegram