In the documentation for cache_size, the description for how much memory a
page takes up says "Each page uses about 1.5K of memory.". I believe that
it is more accurate to say that "Each page uses the database page_size plus
about 512 bytes." I don't know how best to phrase it, save as a series of
examples.
"When the page_size is 1K (the default value), each cache page uses about
1.5K. When the page_size is 32K (the largest possible value), each cache
page uses about 32.5K."
from pagerAllocatePage(...):
pPg = sqliteMallocRaw( sizeof(*pPg) + pPager->pageSize
+ sizeof(u32) + pPager->nExtra
+ MEMDB*sizeof(PgHistory) );
Best,
andy