【发布时间】:2010-11-16 04:31:33
【问题描述】:
我们正在尝试将 SQLite 集成到我们的应用程序中,并尝试填充为缓存。我们计划将其用作内存数据库。第一次使用它。我们的应用程序是基于 C++ 的。
我们的应用程序与主数据库交互以获取数据并执行大量操作。这些操作通常与一个非常大的表有关。我们在 SQLite 中复制了这个表,以下是观察结果:
字段数:60 记录数:1,00,000
随着数据填充的开始,应用程序的内存从 120MB 急剧上升到约 1.4GB。此时我们的应用程序处于空闲状态,没有进行任何重大操作。但通常,一旦操作开始,内存利用率就会上升。现在有了内存数据库中的 SQLite 和如此高的内存使用率,我们认为我们将无法支持这么多记录。
现在当我使用 sqlite3_close() 关闭数据库时,内存没有释放? 我什至尝试放下桌子,但内存仍然很高? 需要怎么做才能让sqlite释放获取的内存,让应用程序的内存恢复正常?
【问题讨论】:
标签: sqlite memory memory-management memory-leaks