#!/usr/bin/env bash set -euo pipefail OUT_DIR="${HOME}/workspace/debug/flamegraph" OUT_DATA="${OUT_DIR}/$(date +%y%m%d-%H%M%S).data" OUT_SVG="${OUT_DIR}/$(date +%y%m%d-%H%M%S).svg" mkdir -p "${OUT_DIR}" # record the data with perf. We need to run this with sudo to get all # the privileges we need. sudo perf record -g --call-graph dwarf --freq max --output "${OUT_DATA}" "$@" # give me ownership of the file sudo chown "${USER}" "${OUT_DATA}" perf script --input "${OUT_DATA}" | stackcollapse-perf.pl | flamegraph.pl >"${OUT_SVG}"