blob: 141ceec12d25ea8927b18b790f4a3ec030d31961 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#!/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}"
|