【问题标题】:How much memory does a prepared SQLite statement consume in iPhone?准备好的 SQLite 语句在 iPhone 中消耗多少内存?
【发布时间】:2009-09-29 03:03:56
【问题描述】:

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

我的运行时内存消耗几乎是 3MB,因此我收到了内存警告。我会在使用后正确重置每个准备好的语句。

除了使用 FMDB 或 CoreData 之外,还有什么方法可以减少内存消耗?

【问题讨论】:

    标签: iphone sqlite


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你是在完成查询执行后调用 sqlite3_finalize 吗?它释放它从准备好的语句中创建的内存。这种情况经常发生。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 2015-07-19
        • 2015-07-12
        • 2011-06-02
        • 1970-01-01
        • 2010-12-26
        相关资源
        最近更新 更多