小巧. 快速. 可靠.
三选其二.

SQLite C 接口

内存分配器统计

sqlite3_int64 sqlite3_memory_used(void);
sqlite3_int64 sqlite3_memory_highwater(int resetFlag);

SQLite 提供以下两个接口来报告 sqlite3_malloc()sqlite3_free()sqlite3_realloc() 例程的状态,这些例程构成了内置的内存分配子系统。

sqlite3_memory_used() 例程返回当前未释放内存(已分配但未释放)的字节数。 sqlite3_memory_highwater() 例程返回自上次重置高水位标记以来的 sqlite3_memory_used() 的最大值。由 sqlite3_memory_used()sqlite3_memory_highwater() 返回的值包含 SQLite 在实现 sqlite3_malloc() 时添加的任何开销,但不包含 sqlite3_malloc() 可能调用的任何底层系统库例程添加的开销。

当且仅当 sqlite3_memory_highwater() 的参数为真时,内存高水位标记将重置为 sqlite3_memory_used() 的当前值。 sqlite3_memory_highwater(1) 返回的值是在重置之前的高水位标记。

另请参见 对象常量函数 列表。