准备好的SQLite语句在iPhone中占用多少内存?

时间:2009-09-29 03:03:56

标签: iphone sqlite

我正在使用SQLite数据库,我需要大约15-20个查询来传递数据库和提取数据。我正在做的是在分配DBPersistence对象时准备此查询,该对象负责与数据库的通信。这个DBPersistence是一个单例类。

我的运行时内存消耗几乎是3MB因为我得到了内存警告。我在使用后正确地重置了每个准备好的声明。

除了使用FMDB或CoreData之外,有没有办法减少内存消耗?

2 个答案:

答案 0 :(得分:0)

每个sqlite准备好的语句本身不应占用超过几百个字节(好吧,这是典型的准备好的语句,当然你可以从几千个字符开始SQL有数百个变量,这会破坏事物,但我假设你是理智的;-)。所以15-20这样的陈述应该占用几KB;我怀疑他们可以解释你的兆字节浪费(我不知道如何检查iPhone占用什么内存,我依靠更为普通的部署环境让SQLite来衡量这些信封的数量,我想iPhone的SQLite准备语句的内存消耗是可比的)。我建议你应该到别处寻找过量内存消耗的来源。

答案 1 :(得分:0)

在完成查询执行后,您是否正在调用sqlite3_finalize?它释放它从预准备语句创建的内存。通常就是这种情况。