]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the shell-script used for routine performance testing.
authordrh <drh@noemail.net>
Sat, 21 May 2016 00:45:54 +0000 (00:45 +0000)
committerdrh <drh@noemail.net>
Sat, 21 May 2016 00:45:54 +0000 (00:45 +0000)
FossilOrigin-Name: 8e366f18f5bbd594390e7b091083e99639de324e

manifest
manifest.uuid
tool/speed-check.sh [new file with mode: 0644]

index d563744dae1e35c1b7b37a937d636a44b329c29a..03a75c80e4cf004cc27787d3d65e7df02e5df394 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sa\ssimple\sTCL\sscript\sfor\ssumming\scachegrind\sinformation\sfor\seach\sVDBE\nopcdoe.
-D 2016-05-20T23:51:14.900
+C Add\sthe\sshell-script\sused\sfor\sroutine\sperformance\stesting.
+D 2016-05-21T00:45:54.756
 F Makefile.in f59e0763ff448719fc1bd25513882b0567286317
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 306d73e854b1a92ea06e5d1e637faa5c44de53c7
@@ -1452,6 +1452,7 @@ F tool/showstat4.c bda40d6e395df7edb6e9ea630784d3d762c35b4b
 F tool/showwal.c ec79959834f7b21f1e0a2aa52bb7c056d2203977
 F tool/soak1.tcl 8d407956e1a45b485a8e072470a3e629a27037fe
 F tool/spaceanal.tcl 85d90e6674d8298e3eaf82dbcef3abc2d5317f3e
+F tool/speed-check.sh 45d3bf861b009993ff401f0d00e34a4cc937fce4
 F tool/speedtest.tcl 06c76698485ccf597b9e7dbb1ac70706eb873355
 F tool/speedtest16.c ecb6542862151c3e6509bbc00509b234562ae81e
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
@@ -1491,7 +1492,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 1765672c2599eb03d39c52cd2dc32ea1e5ee069e
-R 247c58a1e4c62949bc3249c61dcdd977
+P 96cf821b6a69e2e8df33271b7bb674bd12a1ef7b
+R ca27df5abd7cea75d52374965a3f09f5
 U drh
-Z 3e7f8cdf9cdb094239005245e5b11ebd
+Z 7380639ab417b2bbe053c05d7bd1cc2b
index 1f418b0d95276ca1a780e57d880f8cebf4e905f1..4fc75f4fe0215634a6d67e120a66a81bf50f795f 100644 (file)
@@ -1 +1 @@
-96cf821b6a69e2e8df33271b7bb674bd12a1ef7b
\ No newline at end of file
+8e366f18f5bbd594390e7b091083e99639de324e
\ No newline at end of file
diff --git a/tool/speed-check.sh b/tool/speed-check.sh
new file mode 100644 (file)
index 0000000..d10f172
--- /dev/null
@@ -0,0 +1,105 @@
+#!/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 (only with --explain)
+#
+if test "$1" = ""
+then
+  echo "Usage: $0 OUTPUTFILE [OPTIONS]"
+  exit
+fi
+NAME=$1
+shift
+CC_OPTS="-DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_MEMSYS5"
+SPEEDTEST_OPTS="--shrink-memory --reprepare --heap 10000000 64"
+SIZE=5
+doExplain=0
+doCachegrind=1
+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"
+        ;;
+    --stats)
+        SPEEDTEST_OPTS="$SPEEDTEST_OPTS $1"
+        ;;
+    --without-rowid)
+        SPEEDTEST_OPTS="$SPEEDTEST_OPTS $1"
+        ;;
+    --nomemstat)
+        SPEEDTEST_OPTS="$SPEEDTEST_OPTS $1"
+        ;;
+    --temp)
+        SPEEDTEST_OPTS="$SPEEDTEST_OPTS --temp 6"
+        ;;
+    --wal)
+        SPEEDTEST_OPTS="$SPEEDTEST_OPTS --journal wal"
+        ;;
+    --size)
+        shift; SIZE=$1
+        ;;
+    --explain)
+        doExplain=1
+        ;;
+    --vdbeprofile)
+        rm -f vdbe_profile.out
+        CC_OPTS="$CC_OPTS -DVDBE_PROFILE"
+        doCachegrind=0
+        ;;
+    --heap)
+        CC_OPTS="$CC_OPTS -DSQLITE_ENABLE_MEMSYS5"
+        shift;
+        SPEEDTEST_OPTS="$SPEEDTEST_OPTS --heap $1 64"
+        ;;
+    *)
+        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
+if test $doExplain -eq 1; then
+  gcc -g -Os -Wall -I. $CC_OPTS \
+     -DSQLITE_ENABLE_EXPLAIN_COMMENTS \
+    ./shell.c ./sqlite3.c -o sqlite3 -ldl -lpthread
+fi
+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
+if test $doCachegrind -eq 1; then
+  valgrind --tool=cachegrind ./speedtest1 speedtest1.db \
+      $SPEEDTEST_OPTS 2>&1 | tee -a summary-$NAME.txt
+else
+  ./speedtest1 speedtest1.db $SPEEDTEST_OPTS 2>&1 | tee -a summary-$NAME.txt
+fi
+size sqlite3.o | tee -a summary-$NAME.txt
+wc sqlite3.c
+if test $doCachegrind -eq 1; then
+  cg_anno.tcl cachegrind.out.* >cout-$NAME.txt
+fi
+if test $doExplain -eq 1; then
+  ./speedtest1 --explain $SPEEDTEST_OPTS | ./sqlite3 >explain-$NAME.txt
+fi