From: drh <> Date: Sat, 8 Apr 2023 13:01:34 +0000 (+0000) Subject: Optimizations to btree.c save about 4.5 million CPU cycles: X-Git-Tag: version-3.42.0~167 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2da07d9025f24ee10a6e2432394d36a291c96ea8;p=thirdparty%2Fsqlite.git Optimizations to btree.c save about 4.5 million CPU cycles: (1) Clone insertCell() into a separate insertCellFast() routine for use by sqlite3BtreeInsert(). (2) Mark allocateSpace() as always-inline. (3) Improved coalesence of adjacent free blocks in pageFreeArray(). FossilOrigin-Name: 5c12c400fe8eb4e86e14c69a6c34d0d78d9861e5d40a36c6a596a81c6dd65977 --- 2da07d9025f24ee10a6e2432394d36a291c96ea8 diff --cc manifest index 657c476a37,8efcf81a61..bf16d6cba4 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Fix\sa\sproblem\scausing\sthe\srbu_exclusive_checkpoint=1\sto\sbe\signored\swith\szipvfs\sdatabases. - D 2023-04-07T14:03:30.087 -C Guard\sagainst\soversized\scells\sin\sthe\snewly\senhanced\spageFreeArray(). -D 2023-04-07T18:27:32.091 ++C Optimizations\sto\sbtree.c\ssave\sabout\s4.5\smillion\sCPU\scycles:\n(1)\sClone\sinsertCell()\sinto\sa\sseparate\sinsertCellFast()\sroutine\sfor\nuse\sby\ssqlite3BtreeInsert().\s\s(2)\sMark\sallocateSpace()\sas\salways-inline.\n(3)\sImproved\scoalesence\sof\sadjacent\sfree\sblocks\sin\spageFreeArray(). ++D 2023-04-08T13:01:34.177 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -2052,8 -2052,8 +2052,9 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P c07b62bef96bb69e9b1ce08f0084fdce8de981f4d8ea9689c87a41f1e4451ac7 - R 8848363a9c3a234e64f59bd74865cd9d - U dan - Z 1cd4b7dd2aa9fce599ff7d1499f29586 -P 9b3febbd988be05807ada20146d3e196ae17c966722fff049feb32292157bff2 -R 6d5ac3499b5cfed37f1e7ebe2e26c3c7 ++P d8f50b31e8d64fce5141da4a016767a15482703364692a55df346f059fc9d30c 2dcdbb50356edbd3a79e53fa0bee4e700c2bdea78e27173b62ddabe44b066726 ++R 88a02467116587aeb37e104f663e3a20 ++T +closed 2dcdbb50356edbd3a79e53fa0bee4e700c2bdea78e27173b62ddabe44b066726 + U drh -Z 765df8c6a87f2cf39432d4f3f8e36810 ++Z f3818585026019f77b55a7228538100f # Remove this line to create a well-formed Fossil manifest. diff --cc manifest.uuid index 4cf0ab8070,224e5e3627..691fc213b4 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - d8f50b31e8d64fce5141da4a016767a15482703364692a55df346f059fc9d30c -2dcdbb50356edbd3a79e53fa0bee4e700c2bdea78e27173b62ddabe44b066726 ++5c12c400fe8eb4e86e14c69a6c34d0d78d9861e5d40a36c6a596a81c6dd65977