File
tool/kvtest-speed.sh
— part of check-in
[91eb6b628e]
at
2017-01-31 16:49:01
on branch micro-optimizations
— Remove a C99-style comment. Fixes to the kvtest-speed.sh script.
(user:
drh
size: 1165)
[more...]
0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 23 0a 23 20 #!/bin/bash.#.#
0010: 41 20 73 63 72 69 70 74 20 66 6f 72 20 72 75 6e A script for run
0020: 6e 69 6e 67 20 73 70 65 65 64 20 74 65 73 74 73 ning speed tests
0030: 20 75 73 69 6e 67 20 6b 76 74 65 73 74 2e 0a 23 using kvtest..#
0040: 0a 23 20 54 68 65 20 74 65 73 74 20 64 61 74 61 .# The test data
0050: 62 61 73 65 20 6d 75 73 74 20 62 65 20 73 65 74 base must be set
0060: 20 75 70 20 66 69 72 73 74 2e 20 20 52 65 63 6f up first. Reco
0070: 6d 6d 65 6e 64 65 64 0a 23 20 63 6f 6d 6d 61 6e mmended.# comman
0080: 64 2d 6c 69 6e 65 3a 0a 23 0a 23 20 20 20 20 2e d-line:.#.# .
0090: 2f 6b 76 74 65 73 74 20 69 6e 69 74 20 6b 76 74 /kvtest init kvt
00a0: 65 73 74 2e 64 62 20 2d 2d 63 6f 75 6e 74 20 31 est.db --count 1
00b0: 30 30 4b 20 2d 2d 73 69 7a 65 20 31 32 4b 20 2d 00K --size 12K -
00c0: 2d 76 61 72 69 61 6e 63 65 20 35 4b 0a 0a 69 66 -variance 5K..if
00d0: 20 74 65 73 74 20 22 24 31 22 20 3d 20 22 22 0a test "$1" = "".
00e0: 74 68 65 6e 0a 20 20 65 63 68 6f 20 22 55 73 61 then. echo "Usa
00f0: 67 65 3a 20 24 30 20 4f 55 54 50 55 54 46 49 4c ge: $0 OUTPUTFIL
0100: 45 20 5b 4f 50 54 49 4f 4e 53 5d 22 0a 20 20 65 E [OPTIONS]". e
0110: 78 69 74 0a 66 69 0a 4e 41 4d 45 3d 24 31 0a 73 xit.fi.NAME=$1.s
0120: 68 69 66 74 0a 4f 50 54 53 3d 22 2d 44 53 51 4c hift.OPTS="-DSQL
0130: 49 54 45 5f 54 48 52 45 41 44 53 41 46 45 3d 30 ITE_THREADSAFE=0
0140: 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 4c -DSQLITE_OMIT_L
0150: 4f 41 44 5f 45 58 54 45 4e 53 49 4f 4e 20 2d 44 OAD_EXTENSION -D
0160: 53 51 4c 49 54 45 5f 44 49 52 45 43 54 5f 4f 56 SQLITE_DIRECT_OV
0170: 45 52 46 4c 4f 57 5f 52 45 41 44 20 2d 44 55 53 ERFLOW_READ -DUS
0180: 45 5f 50 52 45 41 44 22 0a 4b 56 41 52 47 53 3d E_PREAD".KVARGS=
0190: 22 2d 2d 63 6f 75 6e 74 20 31 30 30 4b 20 2d 2d "--count 100K --
01a0: 73 74 61 74 73 22 0a 67 63 63 20 2d 67 20 2d 4f stats".gcc -g -O
01b0: 73 20 2d 49 2e 20 24 4f 50 54 53 20 24 2a 20 6b s -I. $OPTS $* k
01c0: 76 74 65 73 74 2e 63 20 73 71 6c 69 74 65 33 2e vtest.c sqlite3.
01d0: 63 20 2d 6f 20 6b 76 74 65 73 74 0a 0a 23 20 46 c -o kvtest..# F
01e0: 69 72 73 74 20 72 75 6e 20 75 73 69 6e 67 20 53 irst run using S
01f0: 51 4c 0a 72 6d 20 63 61 63 68 65 67 72 69 6e 64 QL.rm cachegrind
0200: 2e 6f 75 74 2e 5b 31 2d 39 5d 5b 30 2d 39 5d 2a .out.[1-9][0-9]*
0210: 0a 76 61 6c 67 72 69 6e 64 20 2d 2d 74 6f 6f 6c .valgrind --tool
0220: 3d 63 61 63 68 65 67 72 69 6e 64 20 2e 2f 6b 76 =cachegrind ./kv
0230: 74 65 73 74 20 72 75 6e 20 6b 76 74 65 73 74 2e test run kvtest.
0240: 64 62 20 24 4b 56 41 52 47 53 20 32 3e 26 31 20 db $KVARGS 2>&1
0250: 7c 20 74 65 65 20 73 75 6d 6d 61 72 79 2d 6b 76 | tee summary-kv
0260: 74 65 73 74 2d 24 4e 41 4d 45 2e 74 78 74 0a 6d test-$NAME.txt.m
0270: 76 20 63 61 63 68 65 67 72 69 6e 64 2e 6f 75 74 v cachegrind.out
0280: 2e 5b 31 2d 39 5d 5b 30 2d 39 5d 2a 20 63 61 63 .[1-9][0-9]* cac
0290: 68 65 67 72 69 6e 64 2e 6f 75 74 2e 73 71 6c 2d hegrind.out.sql-
02a0: 24 4e 41 4d 45 0a 63 67 5f 61 6e 6e 6f 2e 74 63 $NAME.cg_anno.tc
02b0: 6c 20 63 61 63 68 65 67 72 69 6e 64 2e 6f 75 74 l cachegrind.out
02c0: 2e 73 71 6c 2d 24 4e 41 4d 45 20 3e 63 6f 75 74 .sql-$NAME >cout
02d0: 2d 6b 76 74 65 73 74 2d 73 71 6c 2d 24 4e 41 4d -kvtest-sql-$NAM
02e0: 45 2e 74 78 74 0a 0a 23 20 53 65 63 6f 6e 64 20 E.txt..# Second
02f0: 72 75 6e 20 75 73 69 6e 67 20 74 68 65 20 73 71 run using the sq
0300: 6c 69 74 65 33 5f 62 6c 6f 62 20 6f 62 6a 65 63 lite3_blob objec
0310: 74 0a 76 61 6c 67 72 69 6e 64 20 2d 2d 74 6f 6f t.valgrind --too
0320: 6c 3d 63 61 63 68 65 67 72 69 6e 64 20 2e 2f 6b l=cachegrind ./k
0330: 76 74 65 73 74 20 72 75 6e 20 6b 76 74 65 73 74 vtest run kvtest
0340: 2e 64 62 20 24 4b 56 41 52 47 53 20 2d 2d 62 6c .db $KVARGS --bl
0350: 6f 62 2d 61 70 69 20 32 3e 26 31 20 7c 20 74 65 ob-api 2>&1 | te
0360: 65 20 2d 61 20 73 75 6d 6d 61 72 79 2d 6b 76 74 e -a summary-kvt
0370: 65 73 74 2d 24 4e 41 4d 45 2e 74 78 74 0a 6d 76 est-$NAME.txt.mv
0380: 20 63 61 63 68 65 67 72 69 6e 64 2e 6f 75 74 2e cachegrind.out.
0390: 5b 31 2d 39 5d 5b 30 2d 39 5d 2a 20 63 61 63 68 [1-9][0-9]* cach
03a0: 65 67 72 69 6e 64 2e 6f 75 74 2e 24 4e 41 4d 45 egrind.out.$NAME
03b0: 0a 63 67 5f 61 6e 6e 6f 2e 74 63 6c 20 63 61 63 .cg_anno.tcl cac
03c0: 68 65 67 72 69 6e 64 2e 6f 75 74 2e 24 4e 41 4d hegrind.out.$NAM
03d0: 45 20 3e 63 6f 75 74 2d 6b 76 74 65 73 74 2d 24 E >cout-kvtest-$
03e0: 4e 41 4d 45 2e 74 78 74 0a 0a 23 20 44 69 66 66 NAME.txt..# Diff
03f0: 20 74 68 65 20 73 71 6c 69 74 65 33 5f 62 6c 6f the sqlite3_blo
0400: 62 20 41 50 49 20 61 6e 61 6c 79 73 69 73 20 66 b API analysis f
0410: 6f 72 20 6e 6f 6e 2d 74 72 75 6e 6b 20 72 75 6e or non-trunk run
0420: 73 2e 0a 69 66 20 74 65 73 74 20 22 24 4e 41 4d s..if test "$NAM
0430: 45 22 20 21 3d 20 22 74 72 75 6e 6b 22 3b 20 74 E" != "trunk"; t
0440: 68 65 6e 0a 20 20 66 6f 73 73 69 6c 20 74 65 73 hen. fossil tes
0450: 74 2d 64 69 66 66 20 2d 2d 74 6b 20 63 6f 75 74 t-diff --tk cout
0460: 2d 6b 76 74 65 73 74 2d 74 72 75 6e 6b 2e 74 78 -kvtest-trunk.tx
0470: 74 20 63 6f 75 74 2d 6b 76 74 65 73 74 2d 24 4e t cout-kvtest-$N
0480: 41 4d 45 2e 74 78 74 20 26 0a 66 69 0a AME.txt &.fi.