Index: third_party/sqlite/src/tool/kvtest-speed.sh |
diff --git a/third_party/sqlite/src/tool/kvtest-speed.sh b/third_party/sqlite/src/tool/kvtest-speed.sh |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5f2c8345bee5caf152649a6fa04cd128ea4cd9ff |
--- /dev/null |
+++ b/third_party/sqlite/src/tool/kvtest-speed.sh |
@@ -0,0 +1,35 @@ |
+#!/bin/bash |
+# |
+# A script for running speed tests using kvtest. |
+# |
+# The test database must be set up first. Recommended |
+# command-line: |
+# |
+# ./kvtest init kvtest.db --count 100K --size 12K --variance 5K |
+ |
+if test "$1" = "" |
+then |
+ echo "Usage: $0 OUTPUTFILE [OPTIONS]" |
+ exit |
+fi |
+NAME=$1 |
+shift |
+OPTS="-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_DIRECT_OVERFLOW_READ -DUSE_PREAD" |
+KVARGS="--count 100K --stats" |
+gcc -g -Os -I. $OPTS $* kvtest.c sqlite3.c -o kvtest |
+ |
+# First run using SQL |
+rm cachegrind.out.[1-9][0-9]* |
+valgrind --tool=cachegrind ./kvtest run kvtest.db $KVARGS 2>&1 | tee summary-kvtest-$NAME.txt |
+mv cachegrind.out.[1-9][0-9]* cachegrind.out.sql-$NAME |
+cg_anno.tcl cachegrind.out.sql-$NAME >cout-kvtest-sql-$NAME.txt |
+ |
+# Second run using the sqlite3_blob object |
+valgrind --tool=cachegrind ./kvtest run kvtest.db $KVARGS --blob-api 2>&1 | tee -a summary-kvtest-$NAME.txt |
+mv cachegrind.out.[1-9][0-9]* cachegrind.out.$NAME |
+cg_anno.tcl cachegrind.out.$NAME >cout-kvtest-$NAME.txt |
+ |
+# Diff the sqlite3_blob API analysis for non-trunk runs. |
+if test "$NAME" != "trunk"; then |
+ fossil test-diff --tk cout-kvtest-trunk.txt cout-kvtest-$NAME.txt & |
+fi |