Мы пытаемся интегрировать SQLite в наше приложение и пытаемся заполнить его как кэш. Мы планируем использовать его как базу данных в памяти. Используя это в первый раз. Наше приложение основано на C ++.
Наше приложение взаимодействует с основной базой данных для извлечения данных и выполняет многочисленные операции. Эти операции, как правило, касаются одной таблицы, которая имеет довольно большой размер. Мы скопировали эту таблицу в SQLite, и следующие замечания:
Количество полей: 60 Количество записей: 1,00,000
Когда начинается заполнение данными, объем памяти приложения резко возрастает до ~ 1,4 ГБ с 120 МБ. В настоящее время наше приложение находится в состоянии ожидания и не выполняет каких-либо серьезных операций. Но, как правило, после запуска операций запускается использование памяти. Теперь с SQLite, как в Memory DB, и с таким высоким использованием памяти, мы не думаем, что сможем поддерживать эти многочисленные записи.
Теперь, когда я закрываю БД с помощью sqlite3_close (), память не освобождается?
Я даже пытался сбросить стол, но память все еще остается высокой?
Что нужно сделать, чтобы sqlite освободил накопленную память, а память приложений вернулась в нормальное состояние?