aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-13 15:45:32 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-13 15:45:32 +0200
commitfc9b20ba1dbf8ab3547ece455f35be095f2885e0 (patch)
treea96b43ca47c2e7852d22616ff3b649d719382c53 /scripts
parenttests(basic): Extend to cover repeated sync (diff)
downloadatuin-fc9b20ba1dbf8ab3547ece455f35be095f2885e0.zip
perf: Add basic profiling framework
Diffstat (limited to '')
-rwxr-xr-xscripts/profile_history.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/scripts/profile_history.sh b/scripts/profile_history.sh
new file mode 100755
index 00000000..94f5c7ed
--- /dev/null
+++ b/scripts/profile_history.sh
@@ -0,0 +1,31 @@
+#! /usr/bin/env sh
+
+profile() {
+ cargo flamegraph --bin atuin --profile profiling -- "$@" 2>/dev/null
+}
+
+# SPDX-SnippetBegin
+# SPDX-SnippetCopyrightText: 2023 mentalisttraceur (https://github.com/mentalisttraceur)
+# Source: https://github.com/atuinsh/atuin/issues/1188#issuecomment-1698354107
+run_and_record_in_turtle() {
+ id="$(atuin history start --author "benchmark-script" --intent "to-profile atuin itself" -- "$@")"
+
+ "$@"
+ status="$?"
+
+ profile history end --exit "$status" "$id"
+
+ return $status
+}
+# SPDX-SnippetEnd
+
+if [ "$#" -eq 0 ]; then
+ echo "Not enough args"
+ exit 2
+fi
+
+cargo build --profile profiling
+
+run_and_record_in_turtle "$@"
+
+# vim: ft=sh