flameGraph
Агрегатная функция, которая строит flamegraph на основе списка стек-трейсов. Возвращает массив строк, который может быть использован утилитой flamegraph.pl для построения SVG flamegraph.
Синтаксис
Параметры
traces— стек вызовов. Array(UInt64).size— размер выделения памяти для профилирования. (необязательный параметр, по умолчанию1). UInt64.ptr— адрес выделения. (необязательный параметр, по умолчанию0). UInt64.
Примечание
В случае, если ptr != 0, flameGraph сопоставляет выделения (size > 0) и освобождения (size < 0) памяти с одинаковыми значениями size и ptr.
Показываются только те выделения, которые не были освобождены. Несопоставленные операции освобождения игнорируются.
Возвращаемое значение
- Массив строк, предназначенный для использования с утилитой flamegraph.pl. Array(String).
Примеры
Построение flamegraph на основе CPU‑профилировщика запросов
Построение flame-графа на основе профилировщика памяти запросов, отображающего все выделения
Построение флеймграфа на основе профилировщика памяти запросов, показывающего выделения памяти, которые не были освобождены в контексте выполнения запроса
Построить флеймграф на основе профилировщика запросов по памяти, отображающий активные выделения памяти в определённый момент времени
- 1 - Использование памяти за секунду
- 2 - Найти момент максимального потребления памяти
- 3 - Зафиксировать активные выделения памяти в конкретный момент времени
- 4 - Найти операции освобождения памяти в заданный момент времени