diff options
Diffstat (limited to 'mod/tools/perf-flamegraph.nix')
| -rw-r--r-- | mod/tools/perf-flamegraph.nix | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mod/tools/perf-flamegraph.nix b/mod/tools/perf-flamegraph.nix new file mode 100644 index 0000000..b472b74 --- /dev/null +++ b/mod/tools/perf-flamegraph.nix @@ -0,0 +1,12 @@ +# Script that collects perf timing for the execution of a command and writes a +# flamegraph to stdout +{ pkgs, ... }: + +pkgs.writeShellScriptBin "perf-flamegraph" '' + set -euo pipefail + + ${pkgs.linuxPackages.perf}/bin/perf record -g --call-graph dwarf -F max "$@" + ${pkgs.linuxPackages.perf}/bin/perf script \ + | ${pkgs.flamegraph}/bin/stackcollapse-perf.pl \ + | ${pkgs.flamegraph}/bin/flamegraph.pl +'' |
