Add profiling script

This commit is contained in:
jaseg 2017-08-22 20:13:10 +02:00
parent a18b197ac4
commit e9f79a2e99
2 changed files with 31 additions and 0 deletions

5
fw/profile.gdb Normal file
View file

@ -0,0 +1,5 @@
set pagination off
target remote localhost:3333
while(1)
continue
end

26
fw/profile.sh Normal file
View file

@ -0,0 +1,26 @@
#!/bin/sh
NLOOPS=1000
SLEEP=0.1
[ $# -lt 1 ] && echo "ERROR: Not enough arguments" && exit 2
elffile="$1"
trap "exit" SIGINT
logfile=$(mktemp)
arm-none-eabi-gdb -x profile.gdb "$elffile" > "$logfile" 2>/dev/null&
gdbpid=$!
trap "kill -TERM $gdbpid; rm $logfile" EXIT
echo "Gathering..."
for i in $(seq 1 $NLOOPS); do
echo "$i/$NLOOPS"
kill -INT $gdbpid
sleep $SLEEP
done
kill -TERM $gdbpid
trap "rm '$logfile'" EXIT
egrep -o '\w+ \(.*\) at .*' "$logfile" |cut -d' ' -f1|sort|uniq -c|sort -n
echo 'Total:' $(egrep -c '\w+ \(.*\) at .*' "$logfile")