从其他线程连接时,Sqlite高内存使用率

时间:2018-07-13 04:47:47

标签: multithreading sqlite memory-consumption

我发现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从其他线程启动时会消耗这么多内存?还是我的应用程序中有任何错误?

0 个答案:

没有答案