diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-06-13 15:45:32 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-06-13 15:45:32 +0200 |
| commit | fc9b20ba1dbf8ab3547ece455f35be095f2885e0 (patch) | |
| tree | a96b43ca47c2e7852d22616ff3b649d719382c53 /scripts | |
| parent | tests(basic): Extend to cover repeated sync (diff) | |
| download | atuin-fc9b20ba1dbf8ab3547ece455f35be095f2885e0.zip | |
perf: Add basic profiling framework
Diffstat (limited to '')
| -rwxr-xr-x | scripts/profile_history.sh | 31 |
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 |
