MemPage bitfield patch below.
sizeof(MemPage) on Linux:
original: 84
patched: 76
Patched "make test" runs without regressions on Linux and Windows.
Timings for "make test" (elapsed):
original: 1:20.74
patched: 1:20.22
Size of sqlite3.o when compiled from almalogmation with all
sqlite features enabled with gcc flags -O3 -fomit-frame-pointer:
original: 586976 bytes
patched: 587880 bytes
Patched sqlite3.o is 904 bytes larger.
Break-even for memory is 904/8 = 113 MemPage structs allocated.
Index: src/btreeInt.h
===================================================================
RCS file: /sqlite/sqlite/src/btreeInt.h,v
retrieving revision 1.4
diff -u -3 -p -r1.4 btreeInt.h
--- src/btreeInt.h 16 May 2007 17:28:43 -0000 1.4
+++ src/btreeInt.h 30 May 2007 16:26:03 -0000
@@ -269,15 +269,15 @@ typedef struct BtLock BtLock;
*/
struct MemPage {
u8 isInit; /* True if previously initialized. MUST BE FIRST! */
- u8 idxShift; /* True if Cell indices have changed */
u8 nOverflow; /* Number of overflow cell bodies in aCell[] */
- u8 intKey; /* True if intkey flag is set */
- u8 leaf; /* True if leaf flag is set */
- u8 zeroData; /* True if table stores keys only */
- u8 leafData; /* True if tables stores data on leaves only */
- u8 hasData; /* True if this page stores data */
- u8 hdrOffset; /* 100 for page 1. 0 otherwise */
- u8 childPtrSize; /* 0 if leaf==1. 4 if leaf==0 */
+ u8 hdrOffset:7; /* 100 for page 1. 0 otherwise */
+ u8 zeroData:1; /* True if table stores keys only */
+ u8 childPtrSize:3; /* 0 if leaf==1. 4 if leaf==0 */
+ u8 leaf:1; /* True if leaf flag is set */
+ u8 idxShift:1; /* True if Cell indices have changed */
+ u8 intKey:1; /* True if intkey flag is set */
+ u8 leafData:1; /* True if tables stores data on leaves only */
+ u8 hasData:1; /* True if this page stores data */
u16 maxLocal; /* Copy of Btree.maxLocal or Btree.maxLeaf */
u16 minLocal; /* Copy of Btree.minLocal or Btree.minLeaf */
u16 cellOffset; /* Index in aData of first cell pointer */
____________________________________________________________________________________
Be a PS3 game guru.
Get your game face on with the latest PS3 news and previews at Yahoo! Games.
http://videogames.yahoo.com/platform?platform=120121
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------