1bd08e73cd
This makes two main changes: 1) It disables profiling of things that aren't part of the invoked process (-a). This isn't particularly useful in most cases because it will show things like Chrome's VP9 decoding while you're profiling something else. 2) It tells perf about the debug symbol format, which for some reason isn't DWARF2 by default. Change-Id: Ida6a54b74f1ec635fec930db7e2a2aa039dd1443 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1185 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
12 lines
410 B
Nix
12 lines
410 B
Nix
# 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
|
|
''
|