1
0
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:
drh
2019-12-12 17:17:24 +00:00
parent 20d6c1fe1b
commit 0225d819c4
5 changed files with 19 additions and 16 deletions

View File

@@ -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;

View File

@@ -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]++;

View File

@@ -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.)