]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Performance optimization in the memsys5 memory allocator.
authordrh <>
Mon, 28 Mar 2022 13:22:54 +0000 (13:22 +0000)
committerdrh <>
Mon, 28 Mar 2022 13:22:54 +0000 (13:22 +0000)
FossilOrigin-Name: 949133231f8f751aa86518d0d3f6f03d7827fec085bfef3929fa3d57369d0216

manifest
manifest.uuid
src/mem5.c

index 9769465203b85735ada2490184d87f9505bf5595..72da5c29d65cc85e2e0e4347abaf270f906d6e62 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sthe\sBloom-filter\soptimization\sso\sthat\sit\sdoes\snot\suse\sIS\sNULL\sor\nIS\sNOT\sNULL\sconstraints\sfrom\sthe\sWHERE\sclause\swhen\soperating\son\sa\sLEFT\sJOIN.\n[forum:/forumpost/031e262a89b6a9d2|Forum\sthread\s031e262a89b6a9d2].
-D 2022-03-25T01:23:37.631
+C Performance\soptimization\sin\sthe\smemsys5\smemory\sallocator.
+D 2022-03-28T13:22:54.383
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -522,7 +522,7 @@ F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
 F src/mem2.c c8bfc9446fd0798bddd495eb5d9dbafa7d4b7287d8c22d50a83ac9daa26d8a75
 F src/mem3.c 30301196cace2a085cbedee1326a49f4b26deff0af68774ca82c1f7c06fda4f6
-F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944
+F src/mem5.c 5a3dbd8ac8a6501152a4fc1fcae9b0900c2d7eb0589c4ec7456fdde15725a26c
 F src/memdb.c c2dc88f97c410eb68a24468344b65526685e18354ddfd15906750c1eaf9dc2dd
 F src/memjournal.c 8bd50ae6d9c6d34b3a96cc3b4f567f9935dc358444d872ab48901a8c11ad82a6
 F src/msvc.h 3a15918220367a8876be3fa4f2abe423a861491e84b864fb2b7426bf022a28f8
@@ -1945,8 +1945,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 a7abb725c7c783331e73837597917e25e5ff692aac8ec97a0a8c0e30db62d68b
-R 7df72da8b94385b7c430ac7b857fb766
+P 1a6328f2a5b4973094e5f85787145d652119822c86ec01a61f3f985c9d2903f2
+R 075c473a8f2a578df0cfd2b3c1673c63
 U drh
-Z f44c9fa4c137748740188f91b08447a0
+Z 68a9fe4db4958adfd158cca3b2637b20
 # Remove this line to create a well-formed Fossil manifest.
index 2c894bd6bfce2d70aa22f80a3eeae9f3ce662436..3c17d65bcaebfbb3e3d854d64400195240795ab9 100644 (file)
@@ -1 +1 @@
-1a6328f2a5b4973094e5f85787145d652119822c86ec01a61f3f985c9d2903f2
\ No newline at end of file
+949133231f8f751aa86518d0d3f6f03d7827fec085bfef3929fa3d57369d0216
\ No newline at end of file
index c194a6b778172d6abb109512a64ad4dfa93b79c0..b61b93e112c8d3d211240fd922033b7df119ff68 100644 (file)
@@ -420,8 +420,13 @@ static void *memsys5Realloc(void *pPrior, int nBytes){
 */
 static int memsys5Roundup(int n){
   int iFullSz;
-  if( n > 0x40000000 ) return 0;
-  for(iFullSz=mem5.szAtom; iFullSz<n; iFullSz *= 2);
+  if( n<=mem5.szAtom*2 ){
+    if( n<=mem5.szAtom ) return mem5.szAtom;
+    return mem5.szAtom*2;
+  }
+  if( n>0x40000000 ) return 0;
+  for(iFullSz=mem5.szAtom*8; iFullSz<n; iFullSz *= 4);
+  if( (iFullSz/2)>=n ) return iFullSz/2;
   return iFullSz;
 }