]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Speedtest1 enhancements: (1) Add the ability to scale performance of
authordrh <>
Thu, 16 Jan 2025 14:06:29 +0000 (14:06 +0000)
committerdrh <>
Thu, 16 Jan 2025 14:06:29 +0000 (14:06 +0000)
tests sets using "/NNN" after the testset name, even for testsets in a
comma-separated list.  (2) Add the "mix1" macro testset.

FossilOrigin-Name: 85667b3a572bc9afd8c862a0b2c5f47f76ca80d6e61302ca7d7c1b326d3dd578

manifest
manifest.uuid
test/speedtest1.c

index 211eaabd00731434b85b59ed2a1af6b243282037..46cf956575b2e52adda843ef01f361a48a01e014 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C wasm:\safter\sgenerating\sthe\s.js/.mjs\sfile,\sstrip\sout\sall\sof\sthe\sgenerated\spieces\swhich\screate\sEmscripten\scall()\sbindings\sfor\sthe\ssqlite3\sAPIs,\sas\swe\sdon't\suse\sthose\sbinding,\sso\sboth\sthe\ssetup\stime\sand\sthe\smemory\sthey\suse\sinstalling\sWASM\sproxy\sbindings\sis\swasted.\sThis\seliminates\ssome\s200\ssuperfluous/unused\sbindings\sfrom\sthe\sinit\sprocess.
-D 2025-01-16T13:10:06.949
+C Speedtest1\senhancements:\s\s(1)\sAdd\sthe\sability\sto\sscale\sperformance\sof\ntests\ssets\susing\s"/NNN"\safter\sthe\stestset\sname,\seven\sfor\stestsets\sin\sa\ncomma-separated\slist.\s\s(2)\sAdd\sthe\s"mix1"\smacro\stestset.
+D 2025-01-16T14:06:30.000
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -1677,7 +1677,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 cc503febbb8559d541a67d7a33d3d7bb8a2c8cbbfc89eb336e2e2bd6ad6a63ee
+F test/speedtest1.c ef3a1b9c0938b5202a6ad7a16bf53422f13f4c3901e9b973aaac168a30d75feb
 F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
 F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
@@ -2205,8 +2205,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P fe47154799bfefb12eb1209d9ada64ecac38bee1b7c3558d175215a2beba991d
-R 0d99f3ed7952e5d1d1a513615776937d
-U stephan
-Z 6b1b963846ad84056f214255285f2dea
+P 020d2c7528be6f11a5b2b849d7b2f04e47abe2b0842520ff60eb7defb3768e1c
+R 6782bdbb35165160181ae38f9abe3d27
+U drh
+Z 6a345f2c4878196402ebe51d9f9059ab
 # Remove this line to create a well-formed Fossil manifest.
index 57bfab27048a95758248684537b8823f2aa468eb..b51b9a35e4a20529a86863b33ced1db1944de1e0 100644 (file)
@@ -1 +1 @@
-020d2c7528be6f11a5b2b849d7b2f04e47abe2b0842520ff60eb7defb3768e1c
+85667b3a572bc9afd8c862a0b2c5f47f76ca80d6e61302ca7d7c1b326d3dd578
index b0817858aeb6b587814156d49b85d92811afa063..37f215172ec0cd72f71936498f6a85b0410fc0fe 100644 (file)
@@ -43,6 +43,8 @@ static const char zHelp[] =
   "  --stmtscanstatus    Activate SQLITE_DBCONFIG_STMT_SCANSTATUS\n"
   "  --temp N            N from 0 to 9.  0: no temp table. 9: all temp tables\n"
   "  --testset T         Run test-set T (main, cte, rtree, orm, fp, debug)\n"
+  "                      Can be a comma-separated list of values, with /SCALE suffixes\n"
+  "                      or macro \"mix1\"\n"
   "  --trace             Turn on SQL tracing\n"
   "  --threads N         Use up to N threads for sorting\n"
   "  --utf16be           Set text encoding to UTF-16BE\n"
@@ -99,6 +101,7 @@ static struct Global {
   int bMemShrink;            /* Call sqlite3_db_release_memory() often */
   int eTemp;                 /* 0: no TEMP.  9: always TEMP. */
   int szTest;                /* Scale factor for test iterations */
+  int szBase;                /* Base size prior to testset scaling */
   int nRepeat;               /* Repeat selects this many times */
   int doCheckpoint;          /* Run PRAGMA wal_checkpoint after each trans */
   int nReserve;              /* Reserve bytes */
@@ -2299,6 +2302,7 @@ int main(int argc, char **argv){
   g.zNN = "";
   g.zPK = "UNIQUE";
   g.szTest = 100;
+  g.szBase = 100;
   g.nRepeat = 1;
   for(i=1; i<argc; i++){
     const char *z = argv[i];
@@ -2408,7 +2412,7 @@ int main(int argc, char **argv){
         g.bMemShrink = 1;
       }else if( strcmp(z,"size")==0 ){
         ARGC_VALUE_CHECK(1);
-        g.szTest = integerValue(argv[++i]);
+        g.szTest = g.szBase = integerValue(argv[++i]);
       }else if( strcmp(z,"stats")==0 ){
         showStats = 1;
       }else if( strcmp(z,"temp")==0 ){
@@ -2419,8 +2423,10 @@ int main(int argc, char **argv){
         }
         g.eTemp = argv[i][0] - '0';
       }else if( strcmp(z,"testset")==0 ){
+        static char zMix1Tests[] = "main,orm/25,cte/20,fp/25,parsenumber,rtree/20";
         ARGC_VALUE_CHECK(1);
         zTSet = argv[++i];
+        if( strcmp(zTSet,"mix1")==0 ) zTSet = zMix1Tests;
       }else if( strcmp(z,"trace")==0 ){
         doTrace = 1;
       }else if( strcmp(z,"threads")==0 ){
@@ -2574,6 +2580,7 @@ int main(int argc, char **argv){
   if( g.bExplain ) printf(".explain\n.echo on\n");
   do{
     char *zThisTest = zTSet;
+    char *zSep;
     char *zComma = strchr(zThisTest,',');
     if( zComma ){
       *zComma = 0;
@@ -2581,7 +2588,19 @@ int main(int argc, char **argv){
     }else{
       zTSet = "";
     }
-    if( g.iTotal>0 || zComma!=0 ){
+    zSep = strchr(zThisTest, '/');
+    if( zSep ){
+      int kk;
+      for(kk=1; zSep[kk] && ISDIGIT(zSep[kk]); kk++){}
+      if( kk==1 || zSep[kk]!=0 ){
+        fatal_error("bad modifier on testset name: \"%s\"", zThisTest);
+      }
+      g.szTest = g.szBase*integerValue(zSep+1)/100;
+      zSep[0] = 0;
+    }else{
+      g.szTest = g.szBase;
+    }
+    if( g.iTotal>0 || zComma==0 ){
       printf("       Begin testset \"%s\"\n", zThisTest);
     }
     if( strcmp(zThisTest,"main")==0 ){