From: drh Date: Wed, 31 May 2017 03:20:39 +0000 (+0000) Subject: Reorder fields in the PgHdr object for a performance increase. X-Git-Tag: version-3.20.0~231 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=02f18cc5ac0b73d7e83f8f00bba1e329a060c4ec;p=thirdparty%2Fsqlite.git Reorder fields in the PgHdr object for a performance increase. FossilOrigin-Name: 326e63d71e0e164c5bcd1f74772cb4071b82daf6f04a5d440b985bace5a4c941 --- diff --git a/manifest b/manifest index 734ae656bd..cabbda467f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Avoid\sunnecessary\smemory\szeroing\sduring\sexpression\slist\sallocation. -D 2017-05-31T02:58:30.131 +C Reorder\sfields\sin\sthe\sPgHdr\sobject\sfor\sa\sperformance\sincrease. +D 2017-05-31T03:20:39.040 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 8eeb80162074004e906b53d7340a12a14c471a83743aab975947e95ce061efcc @@ -395,7 +395,7 @@ F src/pager.c 14f6982c470c05b8e85575c69e9c1712010602e20400f8670d8699e21283e0e4 F src/pager.h f2a99646c5533ffe11afa43e9e0bea74054e4efa F src/parse.y 0513387ce02fea97897d8caef82d45f347818593f24f1bdc48e0c530a8af122d F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870 -F src/pcache.h 2cedcd8407eb23017d92790b112186886e179490 +F src/pcache.h 521bb9610d38ef17a3cc9b5ddafd4546c2ea67fa3d0e464823d73c2a28d50e11 F src/pcache1.c 1195a21fe28e223e024f900b2011e80df53793f0356a24caace4188b098540dc F src/pragma.c 2362670a9d28b71708aecb2b9b10b3f7be71f4c950961c07e81dc400e3ce6371 F src/pragma.h 37a1311d0388db480388d7ec09054f7103045eff20d4971f8a433b77f40b9921 @@ -1581,7 +1581,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P af8c0fed93c830c50641d95691bb507c31947a15529aba2a88bfaa66b3a3287a -R 01bf3eaa562713fce9de46b8681a7f8f +P de28e6514a42438411e2c9d833ba660108128ca86d0b90f32925fb73195f4862 +R 4744950bcddf7fda61b1808765626de4 U drh -Z 430fbbd11694ab4293403e0492d5010e +Z 00c7d7a31f2ef8dbc696269ba0fee834 diff --git a/manifest.uuid b/manifest.uuid index eabd629b56..1c9036f53d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -de28e6514a42438411e2c9d833ba660108128ca86d0b90f32925fb73195f4862 \ No newline at end of file +326e63d71e0e164c5bcd1f74772cb4071b82daf6f04a5d440b985bace5a4c941 \ No newline at end of file diff --git a/src/pcache.h b/src/pcache.h index 9012edf22e..864ce5bb4a 100644 --- a/src/pcache.h +++ b/src/pcache.h @@ -26,6 +26,7 @@ struct PgHdr { sqlite3_pcache_page *pPage; /* Pcache object page handle */ void *pData; /* Page data */ void *pExtra; /* Extra content */ + PCache *pCache; /* PRIVATE: Cache that owns this page */ PgHdr *pDirty; /* Transient list of dirty sorted by pgno */ Pager *pPager; /* The pager this page is part of */ Pgno pgno; /* Page number for this page */ @@ -35,12 +36,11 @@ struct PgHdr { u16 flags; /* PGHDR flags defined below */ /********************************************************************** - ** Elements above are public. All that follows is private to pcache.c - ** and should not be accessed by other modules. + ** Elements above, except pCache, are public. All that follow are + ** private to pcache.c and should not be accessed by other modules. + ** pCache is grouped with the public elements for efficiency. */ i16 nRef; /* Number of users of this page */ - PCache *pCache; /* Cache that owns this page */ - PgHdr *pDirtyNext; /* Next element in list of dirty pages */ PgHdr *pDirtyPrev; /* Previous element in list of dirty pages */ };