Add speedtest1 --big-transactions flag to cause its large tests which rely on implicit transactions to be wrapped in BEGIN/COMMIT, per /chat discussion. Added to support of the WASMFS build, which slows down significantly when thousands of implicit transactions are used.
FossilOrigin-Name: 51395c005da46b7fa5a5f28809dd8fea263a6bac2b1492759b3d5a5aa7d399ca
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
C Minor\sbuild\scleanups\sand\stweaks\sin\sthe\sspeedtest1\swasm\sapps.
|
||||
D 2022-09-08T20:04:52.074
|
||||
C Add\sspeedtest1\s--big-transactions\sflag\sto\scause\sits\slarge\stests\swhich\srely\son\simplicit\stransactions\sto\sbe\swrapped\sin\sBEGIN/COMMIT,\sper\s/chat\sdiscussion.\sAdded\sto\ssupport\sof\sthe\sWASMFS\sbuild,\swhich\sslows\sdown\ssignificantly\swhen\sthousands\sof\simplicit\stransactions\sare\sused.
|
||||
D 2022-09-08T21:09:42.601
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||
@@ -1499,7 +1499,7 @@ F test/speed3.test 694affeb9100526007436334cf7d08f3d74b85ef
|
||||
F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715
|
||||
F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
|
||||
F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c
|
||||
F test/speedtest1.c 345566965466923762c1d7f29295d766a05c87bf48115b3030ceec7592cd1cca
|
||||
F test/speedtest1.c 4001e0fcdbe5f136829319b547771d4a0d9b069cdd2d5d878222bed5d61e0b56
|
||||
F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
|
||||
F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
|
||||
F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
|
||||
@@ -2019,8 +2019,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P 45ef576b2ee6369ab1e3aa2ad284764bb334f92a69a33d88b7292bbc0a1b1fda
|
||||
R 64ae0ceed9d3a82f7eef9f630fe798ba
|
||||
P 5240fb4d795dea826f23cf5d2152b519f5a46f49bb2499ea868fa7c7f4ce788b
|
||||
R b4518397db2d29dbb2157e07b557b159
|
||||
U stephan
|
||||
Z f95ff8b3ecd08b87fe1868262a4025a0
|
||||
Z 5034bb533c4e0d8f568aa6b28ab174ab
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
5240fb4d795dea826f23cf5d2152b519f5a46f49bb2499ea868fa7c7f4ce788b
|
||||
51395c005da46b7fa5a5f28809dd8fea263a6bac2b1492759b3d5a5aa7d399ca
|
||||
@@ -7,6 +7,7 @@ static const char zHelp[] =
|
||||
"Usage: %s [--options] DATABASE\n"
|
||||
"Options:\n"
|
||||
" --autovacuum Enable AUTOVACUUM mode\n"
|
||||
" --big-transactions Add BEGIN/END around large tests which normally don't\n"
|
||||
" --cachesize N Set the cache size to N\n"
|
||||
" --checkpoint Run PRAGMA wal_checkpoint after each test case\n"
|
||||
" --exclusive Enable locking_mode=EXCLUSIVE\n"
|
||||
@@ -98,6 +99,7 @@ static struct Global {
|
||||
int nRepeat; /* Repeat selects this many times */
|
||||
int doCheckpoint; /* Run PRAGMA wal_checkpoint after each trans */
|
||||
int nReserve; /* Reserve bytes */
|
||||
int doBigTransactions; /* Enable transactions on tests 410 and 510 */
|
||||
const char *zWR; /* Might be WITHOUT ROWID */
|
||||
const char *zNN; /* Might be NOT NULL */
|
||||
const char *zPK; /* Might be UNIQUE or PRIMARY KEY */
|
||||
@@ -1118,12 +1120,24 @@ void testset_main(void){
|
||||
speedtest1_exec("COMMIT");
|
||||
speedtest1_end_test();
|
||||
speedtest1_begin_test(410, "%d SELECTS on an IPK", n);
|
||||
if( g.doBigTransactions ){
|
||||
/* Historical note: tests 410 and 510 have historically not used
|
||||
** explicit transactions. The --big-transactions flag was added
|
||||
** 2022-09-08 to support the WASM/OPFS build, as the run-times
|
||||
** approach 1 minute for each of these tests if they're not in an
|
||||
** explicit transaction. The run-time effect of --big-transaciions
|
||||
** on native builds is negligible. */
|
||||
speedtest1_exec("BEGIN");
|
||||
}
|
||||
speedtest1_prepare("SELECT b FROM t5 WHERE a=?1; -- %d times",n);
|
||||
for(i=1; i<=n; i++){
|
||||
x1 = swizzle(i,maxb);
|
||||
sqlite3_bind_int(g.pStmt, 1, (sqlite3_int64)x1);
|
||||
speedtest1_run();
|
||||
}
|
||||
if( g.doBigTransactions ){
|
||||
speedtest1_exec("COMMIT");
|
||||
}
|
||||
speedtest1_end_test();
|
||||
|
||||
sz = n = g.szTest*700;
|
||||
@@ -1145,6 +1159,10 @@ void testset_main(void){
|
||||
speedtest1_exec("COMMIT");
|
||||
speedtest1_end_test();
|
||||
speedtest1_begin_test(510, "%d SELECTS on a TEXT PK", n);
|
||||
if( g.doBigTransactions ){
|
||||
/* See notes for test 410. */
|
||||
speedtest1_exec("BEGIN");
|
||||
}
|
||||
speedtest1_prepare("SELECT b FROM t6 WHERE a=?1; -- %d times",n);
|
||||
for(i=1; i<=n; i++){
|
||||
x1 = swizzle(i,maxb);
|
||||
@@ -1152,6 +1170,9 @@ void testset_main(void){
|
||||
sqlite3_bind_text(g.pStmt, 1, zNum, -1, SQLITE_STATIC);
|
||||
speedtest1_run();
|
||||
}
|
||||
if( g.doBigTransactions ){
|
||||
speedtest1_exec("COMMIT");
|
||||
}
|
||||
speedtest1_end_test();
|
||||
speedtest1_begin_test(520, "%d SELECT DISTINCT", n);
|
||||
speedtest1_exec("SELECT DISTINCT b FROM t5;");
|
||||
@@ -2233,6 +2254,8 @@ int main(int argc, char **argv){
|
||||
do{ z++; }while( z[0]=='-' );
|
||||
if( strcmp(z,"autovacuum")==0 ){
|
||||
doAutovac = 1;
|
||||
}else if( strcmp(z,"big-transactions")==0 ){
|
||||
g.doBigTransactions = 1;
|
||||
}else if( strcmp(z,"cachesize")==0 ){
|
||||
if( i>=argc-1 ) fatal_error("missing argument on %s\n", argv[i]);
|
||||
i++;
|
||||
|
||||
Reference in New Issue
Block a user