{ pkgs, config, ... }: let perf-flamegraph-process = pkgs.writeShellScriptBin "perf-flamegraph-process" '' set -euo pipefail OUT_DIR="''${HOME}/workspace/tmp/flamegraph" OUT_SVG="''${OUT_DIR}/$(date +%y%m%d-%H%M%S).svg" mkdir -p ''${OUT_DIR} ${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 > "''${OUT_SVG}" ''; in { config = { home.packages = with pkgs; [ flamegraph perf-flamegraph-process ]; }; }