我的应用程序使用SQLite数据库来存储用户的输入.输入中的记录数将大约为100条记录,我在应用程序中进行了大量的SQL操作.
当我使用Object Allocations运行应用程序时,它会显示sqlite库libsqlite3.0.dylib占用大量内存.libsqlite框架会导致内存泄漏吗?与数据库通信的最佳方式是什么?进行大量的SQL调用会增加我的应用程序的内存使用量.
有人可以让我知道在应用程序中有效使用sqlite的最佳方法.(我使用SQLiteBooks示例作为参考)
谢谢.
Sqlite为请求使用缓存.关闭并重新打开数据库,以释放缓存.
除非你的记忆要求很高,否则你不应该在乎.
您可以在UIApplicationDelegate方法applicationDidReceiveMemoryWarning或UIViewController委托方法didReceiveMemoryWarning中捕获关键条件
如果调用其中一个方法,请关闭并重新打开数据库.
我没有看到由sqlite引起的任何内存泄漏.它确实使用了一块合理的内存,但想想你需要编写多少代码以及需要缓存的数据来做同样的事情......
最好的建议是使用高效的SQL并尽快重置语句句柄.完成准备好的陈述也可能有所帮助,尽管我没有发现需要这样做.
人们经常建议定期关闭并重新打开数据库.虽然这不会伤害我自己也没有看到任何实际的好处.
最后,在sqlite网站上,您将看到有关管理内存的功能的讨论.这些声音非常诱人,直到您意识到它们是可选的并且未在iPhone上的默认构建中启用.