SQLite

Check-in [c1e2ed0ef4]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Comment fix. No changes to code.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | pcache-bulk-local
Files: files | file ages | folders
SHA1: c1e2ed0ef4d3436d19d3203c5fb553caac53659e
User & Date: drh 2015-07-08 14:13:44.573
Context
2015-07-08
16:22
Enhance the pcache1 page cache so that it tries to allocate a block of SQLITE_DEFAULT_PCACHE_INITSZ pages from malloc() on startup, and uses those preallocated pages when possible rather than going to malloc() for each individual page. About a 5% performance increase for some workloads. (check-in: 5348ffc3fd user: drh tags: trunk)
14:13
Comment fix. No changes to code. (Closed-Leaf check-in: c1e2ed0ef4 user: drh tags: pcache-bulk-local)
13:40
Do not do the bulk pcache1 allocations if SQLITE_CONFIG_PAGECACHE specifies a global page cache buffer. (check-in: 75d98dae67 user: drh tags: pcache-bulk-local)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/pcache1.c.
37
38
39
40
41
42
43
44

45
46
47
48
49
50
51
** runtime using sqlite3_config(SQLITE_CONFIG_PCACHE_HDRSZ, &size).  The
** sizes of the extensions sum to 272 bytes on x64 for 3.8.10, but this
** size can vary according to architecture, compile-time options, and
** SQLite library version number.
**
** If SQLITE_PCACHE_SEPARATE_HEADER is defined, then the extension is obtained
** using a separate memory allocation from the database page content.  This
** seeks to overcome the "clownfoot" problem of allocating a few bytes more

** than a power of two with the memory allocator rounding up to the next
** power of two, and leaving the rounded-up space unused.
**
** This module tracks pointers to PgHdr1 objects.  Only pcache.c communicates
** with this module.  Information is passed back and forth as PgHdr1 pointers.
**
** The pcache.c and pager.c modules deal pointers to PgHdr objects.







|
>







37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
** runtime using sqlite3_config(SQLITE_CONFIG_PCACHE_HDRSZ, &size).  The
** sizes of the extensions sum to 272 bytes on x64 for 3.8.10, but this
** size can vary according to architecture, compile-time options, and
** SQLite library version number.
**
** If SQLITE_PCACHE_SEPARATE_HEADER is defined, then the extension is obtained
** using a separate memory allocation from the database page content.  This
** seeks to overcome the "clownshoe" problem (also called "internal
** fragmentation" in academic literature) of allocating a few bytes more
** than a power of two with the memory allocator rounding up to the next
** power of two, and leaving the rounded-up space unused.
**
** This module tracks pointers to PgHdr1 objects.  Only pcache.c communicates
** with this module.  Information is passed back and forth as PgHdr1 pointers.
**
** The pcache.c and pager.c modules deal pointers to PgHdr objects.