blob: 2ca3d16131b34571f2e808529bab0937ced6b5fb (
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}"
|