3 # A script for running speed tests using kvtest.
5 # The test database must be set up first. Recommended
8 # ./kvtest init kvtest.db --count 100K --size 12K --variance 5K
12 echo "Usage: $0 OUTPUTFILE [OPTIONS]"
17 OPTS
="-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_DIRECT_OVERFLOW_READ -DUSE_PREAD"
18 KVARGS
="--count 100K --stats"
19 gcc
-g -Os -I.
$OPTS $
* kvtest.c sqlite3.c
-o kvtest
22 rm cachegrind.out.
[1-9][0-9]*
23 valgrind
--tool=cachegrind .
/kvtest run kvtest.db
$KVARGS 2>&1 |
tee summary-kvtest-
$NAME.txt
24 mv cachegrind.out.
[1-9][0-9]* cachegrind.out.sql-
$NAME
25 cg_anno.tcl cachegrind.out.sql-
$NAME >cout-kvtest-sql-
$NAME.txt
27 # Second run using the sqlite3_blob object
28 valgrind
--tool=cachegrind .
/kvtest run kvtest.db
$KVARGS --blob-api 2>&1 |
tee -a summary-kvtest-
$NAME.txt
29 mv cachegrind.out.
[1-9][0-9]* cachegrind.out.
$NAME
30 cg_anno.tcl cachegrind.out.
$NAME >cout-kvtest-
$NAME.txt
32 # Diff the sqlite3_blob API analysis for non-trunk runs.
33 if test "$NAME" != "trunk"; then
34 fossil test-diff
--tk cout-kvtest-trunk.txt cout-kvtest-
$NAME.txt
&