Sqlite высокая оперативная память при подключении из другого потока
Я нашел проблему с 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, который равен 80 МБ в случае запуска другого потока. Есть ли причина, почему sqlite потребляет так много памяти при запуске из другого потока? Или у меня есть ошибка в моем приложении?