tools: times.sh: show more information in stdout (while still printing it to the log), compute averages of runs, automatically compile and run "times" binary after generating the log.

This commit is contained in:
Matthias Krüger 2014-03-17 02:10:02 +01:00
parent 70c5ddb6d8
commit 76fb3903ff
1 changed files with 21 additions and 16 deletions

View File

@ -2,26 +2,31 @@
#
# Simple script to generate times.log that contains timing information for the last 20 revisions
# Typically these commands shall be used to get times.txt:
# mkdir src
# cp lib/* src/ <- fill src/ with some source code
# tools/times.sh
# gcc -o tools/times tools/times.c
# tools/times
mkdir -p src
cp lib/* src/ # fill src/ with some source code
#NOTE: also try with some files other then from cppcheck!
git checkout -b old
# if "old" already exists for some reason, do NOT work on current branch but bail out
git checkout -b old || exit
make clean
git reset --hard HEAD > times.log
for i in `seq 1 50`;
do
make SRCDIR=build CXXFLAGS=-O2 -j4
echo "$i"
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null >> times.log
git reset --hard HEAD^1 >> times.log
done
for i in `seq 1 50`; do
git_head=`git log -1 --format=%h`
# if build fails, make clean and try again
make SRCDIR=build CXXFLAGS=-O2 -j4 || make clean ; make SRCDIR=build CXXFLAGS=-O2 -j4
echo "Run number $i"
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log
./cppcheck -q --showtime=summary --enable=all --inconclusive src 2> /dev/null | tee -a times.log
grep "Overall" times.log | tail -4 | sed s/s// | awk -v "i=$i" -v "git_head=$git_head" '{ sum+=$3} END {print "Run " i", "git_head " Average: " sum/4}' | tee -a times.log
git reset --hard HEAD^1 | tee -a times.log
done
gcc -o tools/times tools/times.c
tools/times