2013-02-15 45 views
0

我建立了我的第一个Android应用程序。我收集了一些显示的列表。我很想知道手机内存大小的小小,每次都将数据库存入我的列表还是将它保存在内存中是一种更好的设计方法?Android应用程序更有效地去数据库或保持内存收集

我确实需要频繁地重新排序列表,所以只需按排序顺序将它们从数据库中提取出来就非常快。

回答

1

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

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

将数据保存在内存中,只要您有RAM空闲空间,当您超出RAM限制(分页)时,开始读取/写入数据的部分数据到磁盘DB。只有在极少数情况下才会需要此功能,因为大多数现代移动设备都有适合他们提供的应用程序的平均需求的合理内存。

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

最后确保当你的应用程序不在身边时,将重要数据保存到数据库。

0

数据库只能用于存储电源周期之间或应用程序之间的非设置信息。你不应该把它们用于你可以放在内存中的东西,因为它会更慢,并且会有很多额外的编程。

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

编辑

你也可能要考虑如何频繁的数据被访问。你不想经常查询数据库。

0

我们不知道列表中的内容,但通常情况下,除非您正在处理图形,否则您不会侵占设备或应用的内存限制。

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

无论如何,我的答案是保持在记忆中。只保留你需要的数据。

相关问题