我发现sqlite出现了问题,但现在已经几天了。问题是,当我尝试从其他线程然后从主线程(具有main方法的线程)创建新数据库(新连接)时,sqlite将分配比平时更多的内存。
这是我正在尝试做的非常简单的示例。
https://pastebin.com/BkU3uMCb
从主线程打开数据库时,会出现内存使用情况的结果(来自proc / pid / status)。
VmPeak: 19780 kB
VmSize: 19636 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1756 kB
VmRSS: 1756 kB
VmData: 308 kB
VmStk: 132 kB
VmExe: 8 kB
VmLib: 4744 kB
VmPTE: 60 kB
VmSwap: 0 kB
从其他线程打开sqlite会有结果
VmPeak: 158904 kB
VmSize: 93368 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1636 kB
VmRSS: 1636 kB
VmData: 74040 kB
VmStk: 132 kB
VmExe: 8 kB
VmLib: 4744 kB
VmPTE: 60 kB
VmSwap: 0 kB
最明显的区别是VmData,在启动另一个线程的情况下,大约为80MB。 有什么原因,为什么sqlite从其他线程启动时会消耗这么多内存?还是我的应用程序中有任何错误?