Android应用程序更有效地转到数据库或保存内存中的集合

时间:2013-02-15 19:17:37

标签: android sql database performance

我构建了我的第一个Android应用程序。我有一系列列表,我显示。我想知道手机的内存容量很小,每次将数据库输入我的列表或将其保存在内存中是一种更好的设计方法吗?

我确实需要经常重新排序列表,因此只需按排序顺序将它们从数据库中删除即可。它很快。

3 个答案:

答案 0 :(得分:1)

内存列表使用RAM,频繁的数据库查询使用CPU并导致I / O延迟。在移动设备上,您必须平衡所有这些,以使您的代码响应,但备用电池,对RAM和CPU的影响最小。

为您的代码设置合理的限制并尝试在其中工作。确定最大内存限制和最短响应时间。

只要RAM有空,就将数据保存在内存中,当超出RAM限制(分页)时,开始将部分数据写入磁盘数据库。只有在极少数情况下才需要这样,因为大多数现代移动设备都有合理的RAM来满足他们提供的应用程序的平均需求。

一个典型的例子是显示一百万个项目的列表,其中你在RAM中保留1000个左右,并按需从DB加载下一个/前一个1000。

最后确保当App不在时,将重要数据保存到数据库。

答案 1 :(得分:0)

数据库仅应用于在电源循环之间或应用程序之间存储非设置信息。你不应该将它们用于你可以放在内存中的东西,因为它会更慢并且需要额外的编程。

如果你需要处理大量的列表并且有一个很好的方法来组织它们的表,在SQL中检索它们,我可能会看到使用数据库来保持持久内存中的数据是有用的。

修改

您也可以考虑访问数据的频率。您不希望不断查询数据库。

答案 2 :(得分:0)

我们不知道您的列表的内容,但通常您不会侵犯您的设备或您的应用程序的内存限制,除非您正在处理图形。

推断为简单数据类型的文本数据和结构不会耗尽设备的“有限内存”,除非它们非常大。

无论如何,我的回答是将它留在记忆中。只保留您需要的数据。