mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-21 09:00:59 +03:00
Change the size of a mini-lookaside allocation to a macro (MINI_SZ) rather
than a magic number (128). FossilOrigin-Name: 5e1949bca998f3c8c23a8ebf01c7a2e7a2af1fdad43886271e1fe0f25411551d
This commit is contained in:
@@ -720,9 +720,9 @@ static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt){
|
||||
db->lookaside.pMiniFree = 0;
|
||||
/* The arithmetic below causes the number of large lookaside slots to be 1/3
|
||||
** the number of mini slots, based on the observation that 75% of allocations
|
||||
** are <=128B.
|
||||
** are <= MINI_SZ bytes.
|
||||
*/
|
||||
cnt = szAlloc/(3*128+sz);
|
||||
cnt = szAlloc/(3*MINI_SZ+sz);
|
||||
#endif
|
||||
db->lookaside.sz = (u16)sz;
|
||||
db->lookaside.szTrue = (u16)sz;
|
||||
@@ -740,11 +740,11 @@ static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt){
|
||||
#ifndef SQLITE_OMIT_MINI_LOOKASIDE
|
||||
db->lookaside.pMiddle = p;
|
||||
/* Fill the remainder of the buffer with mini slots */
|
||||
while(p<=(LookasideSlot*)&((u8*)pStart)[szAlloc-128]){
|
||||
while(p<=(LookasideSlot*)&((u8*)pStart)[szAlloc-MINI_SZ]){
|
||||
p->pNext = db->lookaside.pMiniInit;
|
||||
db->lookaside.pMiniInit = p;
|
||||
db->lookaside.nSlot++;
|
||||
p = (LookasideSlot*)&((u8*)p)[128];
|
||||
p = (LookasideSlot*)&((u8*)p)[MINI_SZ];
|
||||
}
|
||||
#endif
|
||||
db->lookaside.pEnd = p;
|
||||
|
||||
@@ -334,7 +334,7 @@ int sqlite3MallocSize(void *p){
|
||||
}
|
||||
static int lookasideMallocSize(sqlite3 *db, void *p){
|
||||
#ifndef SQLITE_OMIT_MINI_LOOKASIDE
|
||||
return p<db->lookaside.pMiddle ? db->lookaside.szTrue : 128;
|
||||
return p<db->lookaside.pMiddle ? db->lookaside.szTrue : MINI_SZ;
|
||||
#else
|
||||
return db->lookaside.szTrue;
|
||||
#endif
|
||||
@@ -408,7 +408,7 @@ void sqlite3DbFreeNN(sqlite3 *db, void *p){
|
||||
if( p>=db->lookaside.pMiddle ){
|
||||
# ifdef SQLITE_DEBUG
|
||||
/* Trash all content in the buffer being freed */
|
||||
memset(p, 0xaa, 128);
|
||||
memset(p, 0xaa, MINI_SZ);
|
||||
# endif
|
||||
pBuf->pNext = db->lookaside.pMiniFree;
|
||||
db->lookaside.pMiniFree = pBuf;
|
||||
@@ -583,7 +583,7 @@ void *sqlite3DbMallocRawNN(sqlite3 *db, u64 n){
|
||||
}
|
||||
db->lookaside.anStat[1]++;
|
||||
# ifndef SQLITE_OMIT_MINI_LOOKASIDE
|
||||
}else if( n<=128 ){
|
||||
}else if( n<=MINI_SZ ){
|
||||
if( (pBuf = db->lookaside.pMiniFree)!=0 ){
|
||||
db->lookaside.pMiniFree = pBuf->pNext;
|
||||
db->lookaside.anStat[0]++;
|
||||
|
||||
@@ -1303,6 +1303,9 @@ struct LookasideSlot {
|
||||
#define EnableLookaside db->lookaside.bDisable--;\
|
||||
db->lookaside.sz=db->lookaside.bDisable?0:db->lookaside.szTrue
|
||||
|
||||
/* Size of the MINI lookside allocation */
|
||||
#define MINI_SZ 128
|
||||
|
||||
/*
|
||||
** A hash table for built-in function definitions. (Application-defined
|
||||
** functions use a regular table table from hash.h.)
|
||||
|
||||
Reference in New Issue
Block a user