Add profiling script
This commit is contained in:
parent
a18b197ac4
commit
e9f79a2e99
2 changed files with 31 additions and 0 deletions
5
fw/profile.gdb
Normal file
5
fw/profile.gdb
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
set pagination off
|
||||
target remote localhost:3333
|
||||
while(1)
|
||||
continue
|
||||
end
|
||||
26
fw/profile.sh
Normal file
26
fw/profile.sh
Normal 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")
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue