69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| #
 | |
| # This is a template for a script used for day-to-day size and 
 | |
| # performance monitoring of SQLite.  Typical usage:
 | |
| #
 | |
| #     sh run-speed-test.sh trunk  #  Baseline measurement of trunk
 | |
| #     sh run-speed-test.sh x1     # Measure some experimental change
 | |
| #     fossil test-diff --tk cout-trunk.txt cout-x1.txt   # View chanages
 | |
| #
 | |
| # There are multiple output files, all with a base name given by
 | |
| # the first argument:
 | |
| #
 | |
| #     summary-$BASE.txt           # Copy of standard output
 | |
| #     cout-$BASE.txt              # cachegrind output
 | |
| #     explain-$BASE.txt           # EXPLAIN listings
 | |
| #
 | |
| if test "$1" = ""
 | |
| then
 | |
|   echo "Usage: $0 OUTPUTFILE [OPTIONS]"
 | |
|   exit
 | |
| fi
 | |
| NAME=$1
 | |
| shift
 | |
| CC_OPTS="-DSQLITE_ENABLE_RTREE"
 | |
| SPEEDTEST_OPTS="--shrink-memory --reprepare"
 | |
| SIZE=5
 | |
| while test "$1" != ""; do
 | |
|   case $1 in
 | |
|     --reprepare)
 | |
|         SPEEDTEST_OPTS="$SPEEDTEST_OPTS $1"
 | |
|         ;;
 | |
|     --autovacuum)
 | |
|         SPEEDTEST_OPTS="$SPEEDTEST_OPTS $1"
 | |
|         ;;
 | |
|     --utf16be)
 | |
|         SPEEDTEST_OPTS="$SPEEDTEST_OPTS $1"
 | |
|         ;;
 | |
|     --without-rowid)
 | |
|         SPEEDTEST_OPTS="$SPEEDTEST_OPTS $1"
 | |
|         ;;
 | |
|     --size)
 | |
|         shift; SIZE=$1
 | |
|         ;;
 | |
|     *)
 | |
|         CC_OPTS="$CC_OPTS $1"
 | |
|         ;;
 | |
|   esac
 | |
|   shift
 | |
| done
 | |
| SPEEDTEST_OPTS="$SPEEDTEST_OPTS --size $SIZE"
 | |
| echo "NAME           = $NAME" | tee summary-$NAME.txt
 | |
| echo "SPEEDTEST_OPTS = $SPEEDTEST_OPTS" | tee -a summary-$NAME.txt
 | |
| echo "CC_OPTS        = $CC_OPTS" | tee -a summary-$NAME.txt
 | |
| rm -f cachegrind.out.* speedtest1 speedtest1.db sqlite3.o
 | |
| gcc -g -Os -Wall -I. $CC_OPTS -c sqlite3.c
 | |
| size sqlite3.o | tee -a summary-$NAME.txt
 | |
| gcc -g -Os -Wall -I. $CC_OPTS \
 | |
|    -DSQLITE_ENABLE_EXPLAIN_COMMENTS \
 | |
|    ./shell.c ./sqlite3.c -o sqlite3 -ldl -lpthread
 | |
| SRC=./speedtest1.c
 | |
| gcc -g -Os -Wall -I. $CC_OPTS $SRC ./sqlite3.o -o speedtest1 -ldl -lpthread
 | |
| ls -l speedtest1 | tee -a summary-$NAME.txt
 | |
| valgrind --tool=cachegrind ./speedtest1 speedtest1.db \
 | |
|     $SPEEDTEST_OPTS 2>&1 | tee -a summary-$NAME.txt
 | |
| size sqlite3.o | tee -a summary-$NAME.txt
 | |
| wc sqlite3.c
 | |
| cg_anno.tcl cachegrind.out.* >cout-$NAME.txt
 | |
| ./speedtest1 --explain $SPEEDTEST_OPTS | ./sqlite3 >explain-$NAME.txt
 | 
