On 4/12/18, king3306 <1809860...@qq.com> wrote: > > 1: > before i use insert cmd ,the linux memory and sqlite3_memory_used is > linux: tota=29126656 used=16998400 free=12128256 > sqlite3_memory_used:1372576 > > after i use inset cmd ,the linux memory and sqlite3_memory_used is > linux: tota=29126656 used=17608704 free=11517952 > sqlite3_memory_used:1710016 > > why 1710016-1372576=337440 != 12128256-11517952=610304
When SQLite calls free() to release memory back to the native memory allocation, free() does not necessarily release that memory back to the operating system. Usually free() will keep that memory around to be reused for the next malloc() request. I think you are seeing the memory that free() has kept back for reuse. -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users