Дельта-профили: методика
Белуга 0.7.3 · документация разработчика
- Идея дельты
- Точки съёма
- Точность и шум
Белуга не претендует на полный аллокационный трейсинг. Её методика — дельта-профиль: два (или более) снимка распределения памяти по стекам, взятые в разные моменты времени, и разница между ними.
Идея дельты
Абсолютный профиль «здесь и сейчас» почти всегда доминируется долгоживущими данными (кэш, конфигурация), которые неинтересны при поиске утечки. Дельта устраняет константу: то, что выросло между точками A и B, и есть кандидат.
beluga attach --pid 4213 --interval 300s --points 2
# снимок A: 10:00:00 (t0)
# снимок B: 10:05:00 (t0+300s)
# дельта: записана в beluga-delta-A-B.txt
Точки съёма
Выбор точек важнее настроек съёмки. Стандартная пара: «после прогрева» и «после воспроизведения нагрузки». Точка сразу после старта включит в дельту естественную инициализацию и утопит сигнал.
Точность и шум
Стеки собираются семплированием, поэтому мелкие частые аллокации дают вероятностную картину. Порог значимости по умолчанию — 1% дельты; всё ниже помечается как шум и отделяется в отчёте.