From fc9b20ba1dbf8ab3547ece455f35be095f2885e0 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sat, 13 Jun 2026 15:45:32 +0200 Subject: perf: Add basic profiling framework --- scripts/profile_history.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 scripts/profile_history.sh (limited to 'scripts/profile_history.sh') 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 -- cgit v1.3.1