aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/perf18
1 files changed, 18 insertions, 0 deletions
diff --git a/bin/perf b/bin/perf
new file mode 100755
index 0000000..9a70b08
--- /dev/null
+++ b/bin/perf
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -eux
+
+rm -f target/release/* perf.* || true
+if ! grep -q debug Cargo.toml; then
+ cat >> Cargo.toml <<EOF
+
+[profile.release]
+debug = true
+EOF
+fi
+cargo test --release --no-run
+bin=$(find ./target/release -maxdepth 1 -name '*split_escape*' -not -name '*.d')
+perf record -F99 --call-graph dwarf,16384 "$bin" --ignored
+perf script > perf.script
+perl ~/coding/src/FlameGraph/stackcollapse-perf.pl perf.script > perf.collapsed
+perl ~/coding/src/FlameGraph/flamegraph.pl perf.collapsed > perf.svg
+firefox perf.svg