-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-C Merge\sinto\sthe\strunk\sthe\sexperimental\senhancements\sto\ssqlite3_db_status()\s\nfor\smeasuring\slookaside\smemory\sallocator\sperformance.
-D 2010-12-21T20:36:46
+C Add\stest\scases\sfor\sthe\snew\slookaside\shit\sand\smiss\sstatus\soutputs.\s\sAdd\nthe\soutput\sof\slookaside\shit\sand\smiss\sto\sthe\scommand-line\sshell\sstatistics.
+D 2010-12-21T21:28:38
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in de6498556d536ae60bb8bb10e8c1ba011448658c
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
F src/select.c 8a7ba246b0b4bb45df7fbc52681728a0e3deaaa7
-F src/shell.c 9afa9bdd62142e254b4581a77b43080d3ffd4ef4
+F src/shell.c 83c6f0cc5a79a081c7b9ddfe4f557b47e0bad976
F src/sqlite.h.in 54dd12d0dd8b6a4afd7b3d5a03d36ec64a67b641
F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754
F src/sqliteInt.h 3ef5fc89a4c9755a08a68de107493785a284e27c
F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
F src/test_journal.c 785edd54f963aefb3c1628124170a56697c68c70
F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
-F src/test_malloc.c 09a88f0c111201dc4f8c20470aa1b5f611d59200
+F src/test_malloc.c fd6188b1501c0010fb4241ddc9f0d5ac402c688d
F src/test_multiplex.c 5990431a852aa21c9a67da748f23d2cf1e21f8fc
F src/test_mutex.c ce06b59aca168cd8c520b77159a24352a7469bd3
F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec
F test/lock6.test ad5b387a3a8096afd3c68a55b9535056431b0cf5
F test/lock7.test 64006c84c1c616657e237c7ad6532b765611cf64
F test/lock_common.tcl d279887a0ab16cdb6d935c1203e64113c5a000e9
-F test/lookaside.test 382e7bc2fab23d902c8eafb1b9ed7ababfff75a6
+F test/lookaside.test 93f07bac140c5bb1d49f3892d2684decafdc7af2
F test/main.test 9d7bbfcc1b52c88ba7b2ba6554068ecf9939f252
F test/make-where7.tcl 05c16b5d4f5d6512881dfec560cb793915932ef9
F test/malloc.test 927e6c8668a1d48c23aa6189bda02aff5a1b83de
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 09f6c053ff9239c22ecf527ae579446c6e21e550 34613f1dc54c638531ca2f5907b71fbe8841233e
-R 70bb859101c53c246dfc4f574be27803
+P 8c3b06c299554759b67437e09ee7ef6420dacafc
+R 3d2dc28d218eda07e432c06d2acaf490
U drh
-Z a58574a5d2655de53c943a82d61ee0c4
+Z 978ce4a1633e46da2aa79d83b4cbd5d5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
-iD8DBQFNEQ/hoxKgR168RlERAlduAKCC7Lj51Ln8aN6aJlGCTwPg8olPygCghFCt
-2eqZ3E29sKKFSCheCCAI7u0=
-=jBul
+iD8DBQFNERwJoxKgR168RlERAicZAJwKgYzQDbPRBPAlwwf+g1uwhrnDewCePClG
+nEAmUkNjgcw8rSbTLPArTDg=
+=3YUL
-----END PGP SIGNATURE-----
-8c3b06c299554759b67437e09ee7ef6420dacafc
\ No newline at end of file
+b0888047bb6d9ac55e29b9224df2ff650728bb78
\ No newline at end of file
fprintf(pArg->out, "Memory Used: %d (max %d) bytes\n", iCur, iHiwtr);
iHiwtr = iCur = -1;
sqlite3_status(SQLITE_STATUS_MALLOC_COUNT, &iCur, &iHiwtr, bReset);
- fprintf(pArg->out, "Number of Allocations: %d (max %d)\n", iCur, iHiwtr);
+ fprintf(pArg->out, "Number of Outstanding Allocations: %d (max %d)\n", iCur, iHiwtr);
/*
** Not currently used by the CLI.
** iHiwtr = iCur = -1;
iHiwtr = iCur = -1;
sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_USED, &iCur, &iHiwtr, bReset);
fprintf(pArg->out, "Lookaside Slots Used: %d (max %d)\n", iCur, iHiwtr);
+ sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_HIT, &iCur, &iHiwtr, bReset);
+ fprintf(pArg->out, "Successful lookaside attempts: %d\n", iHiwtr);
+ sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE, &iCur, &iHiwtr, bReset);
+ fprintf(pArg->out, "Lookaside failures due to size: %d\n", iHiwtr);
+ sqlite3_db_status(db, SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL, &iCur, &iHiwtr, bReset);
+ fprintf(pArg->out, "Lookaside failures due to OOM: %d\n", iHiwtr);
iHiwtr = iCur = -1;
sqlite3_db_status(db, SQLITE_DBSTATUS_CACHE_USED, &iCur, &iHiwtr, bReset);
fprintf(pArg->out, "Pager Heap Usage: %d bytes\n", iCur);
const char *zName;
int op;
} aOp[] = {
- { "SQLITE_DBSTATUS_LOOKASIDE_USED", SQLITE_DBSTATUS_LOOKASIDE_USED },
- { "SQLITE_DBSTATUS_CACHE_USED", SQLITE_DBSTATUS_CACHE_USED },
- { "SQLITE_DBSTATUS_SCHEMA_USED", SQLITE_DBSTATUS_SCHEMA_USED },
- { "SQLITE_DBSTATUS_STMT_USED", SQLITE_DBSTATUS_STMT_USED }
+ { "LOOKASIDE_USED", SQLITE_DBSTATUS_LOOKASIDE_USED },
+ { "CACHE_USED", SQLITE_DBSTATUS_CACHE_USED },
+ { "SCHEMA_USED", SQLITE_DBSTATUS_SCHEMA_USED },
+ { "STMT_USED", SQLITE_DBSTATUS_STMT_USED },
+ { "LOOKASIDE_HIT", SQLITE_DBSTATUS_LOOKASIDE_HIT },
+ { "LOOKASIDE_MISS_SIZE", SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE },
+ { "LOOKASIDE_MISS_FULL", SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL }
};
Tcl_Obj *pResult;
if( objc!=4 ){
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
zOpName = Tcl_GetString(objv[2]);
+ if( memcmp(zOpName, "SQLITE_", 7)==0 ) zOpName += 7;
+ if( memcmp(zOpName, "DBSTATUS_", 9)==0 ) zOpName += 9;
for(i=0; i<ArraySize(aOp); i++){
if( strcmp(aOp[i].zName, zOpName)==0 ){
op = aOp[i].op;
do_test lookaside-1.2 {
sqlite3_db_config_lookaside db 1 18 18
} {0}
-do_test lookaside-1.3 {
- sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 0
+do_test lookaside-1.3.1 {
+ sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 0
+} {0 0 0}
+do_test lookaside-1.3.2 {
+ sqlite3_db_status db DBSTATUS_LOOKASIDE_HIT 0
+} {0 0 0}
+do_test lookaside-1.3.3 {
+ sqlite3_db_status db DBSTATUS_LOOKASIDE_MISS_SIZE 0
+} {0 0 0}
+do_test lookaside-1.3.4 {
+ sqlite3_db_status db DBSTATUS_LOOKASIDE_MISS_FULL 0
} {0 0 0}
do_test lookaside-1.4 {
db eval {CREATE TABLE t1(w,x,y,z);}
- foreach {x y z} [sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 0] break
- expr {$x==0 && $y<$z && $z==18}
+ foreach {x y z} [sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 0] break
+ set p [lindex [sqlite3_db_status db DBSTATUS_LOOKASIDE_HIT 0] 2]
+ set q [lindex [sqlite3_db_status db DBSTATUS_LOOKASIDE_MISS_SIZE 0] 2]
+ set r [lindex [sqlite3_db_status db DBSTATUS_LOOKASIDE_MISS_FULL 0] 2]
+ expr {$x==0 && $y<$z && $z==18 && $p>0 && $q>0 && $r>0}
} {0}
do_test lookaside-1.5 {
- foreach {x y z} [sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 1] break
+ foreach {x y z} [sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 1] break
expr {$x==0 && $y<$z && $z==18}
} {0}
do_test lookaside-1.6 {
- foreach {x y z} [sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 0] break
+ foreach {x y z} [sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 0] break
expr {$x==0 && $y==$z && $y<18}
} {1}
do_test lookaside-1.7 {
db cache flush
- foreach {x y z} [sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 0] break
+ foreach {x y z} [sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 0] break
expr {$x==0 && $y==0 && $z<18}
} {1}
do_test lookaside-1.8 {
db cache flush
- foreach {x y z} [sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 1] break
+ foreach {x y z} [sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 1] break
expr {$x==0 && $y==0 && $z<18}
} {1}
do_test lookaside-1.9 {
db cache flush
- sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 0
+ sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 0
} {0 0 0}
do_test lookaside-2.1 {
} {0}
do_test lookaside-2.2 {
db eval {CREATE TABLE t2(x);}
- foreach {x y z} [sqlite3_db_status db SQLITE_DBSTATUS_LOOKASIDE_USED 0] break
+ foreach {x y z} [sqlite3_db_status db DBSTATUS_LOOKASIDE_USED 0] break
expr {$x==0 && $y<$z && $z>10 && $z<100}
} {1}
do_test lookaside-2.3 {