Android SQLite内存性能最佳实践

Android SQLite内存性能最佳实践,android,android-sqlite,android-memory,Android,Android Sqlite,Android Memory,考虑到大约200k行的SQLite数据库和每10秒一次的读取访问,内存性能的最佳实践是什么 [打开,请求,关闭]每10秒 或 打开,[请求]每10秒,关闭 首先,你应该问问自己,为什么Android应用程序中有20万条记录。关于这个问题,在Android中,建议在应用程序开始时打开DB一次,在应用程序结束时关闭DB(失去焦点)。感谢您的回复。200k记录正常,没有泄漏。我只是想知道关闭数据库是否允许释放内存资源来执行其他任务,就像处理结果一样。“最佳实践”意味着您已经确定了所有可能的实践,

考虑到大约200k行的SQLite数据库和每10秒一次的读取访问,内存性能的最佳实践是什么

  • [
    打开
    请求
    关闭
    ]每10秒

  • 打开
    ,[
    请求
    ]每10秒,
    关闭

首先,你应该问问自己,为什么Android应用程序中有20万条记录。关于这个问题,在Android中,建议在应用程序开始时打开DB一次,在应用程序结束时关闭DB(失去焦点)。感谢您的回复。200k记录正常,没有泄漏。我只是想知道关闭数据库是否允许释放内存资源来执行其他任务,就像处理结果一样。“最佳实践”意味着您已经确定了所有可能的实践,对它们进行了度量,并通过将这些度量与“最佳”标准相比较来选择“最佳”。这描述了您应该如何确定最佳实践。没有这一点,其他人怎么能确定呢?正如m0skit0所说,推荐的做法是打开一次,因为打开是一项昂贵的操作。谢谢,我确定了这两种可能的做法,但如何在“打开文件”过程中测量内存分配?内存是否由数据库内容填充?这很难。MAT是您最好的选择,但内存使用并不像“以前是什么,现在是什么”那么简单。数据库未加载到内存中。而是将选定行的结果集加载到游标中,游标本身实现缓存。另一种说法是“获取一个包含10行的数据库”。打开它。使用了一些内存。在不更改任何内容的情况下,添加1000行并打开。隔离除打开数据库之外的所有其他更改(祝你好运!),使用的内存与第一种情况非常相似。只有当您查询时,它才会更改。