aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-09 07:03:31 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-09 14:58:57 -0500
commit4e774bc93fc9aaa1f84db7736cd45eef71e712cc (patch)
tree786ceae09164514aed945392e6d746e79d1b13f2 /bin
parent5970f3f473b915f61f8306263c15c70e2f962f7c (diff)
downloadvt100-rust-4e774bc93fc9aaa1f84db7736cd45eef71e712cc.tar.gz
vt100-rust-4e774bc93fc9aaa1f84db7736cd45eef71e712cc.zip
add script for profiling
Diffstat (limited to 'bin')
-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