SQlite源码分析

缺省内存分配器(mem1.c)

mem1.c中主要在系统malloc等函数基础上增加了一个长度的的头。用于统计内存使用量。当使用SQLITE_SYSTEM_MALLOC或没指定宏时启用。

    缺省情况下,SQLite使用C标准库中的malloc(), realloc()和free()例程来分配内存。实现中还对这些例程做一层薄的包装以提供一个memsize()函数返回一个现存分配的大小。memsize()也能精确地跟踪未归还内存的字节数,它能确定当一个分配被释放时有多少字节从未归还内存中移除。缺省内存分配器中的memsize()实现是在每个malloc()请求上多分配额外8个字节作为头部,并把分配的大小保存到这个8字节的头部。