gpt4 book ai didi

java - 多少简单的键值对对于在 Android 中存储数据来说太多了?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:35 25 4
gpt4 key购买 nike

我目前正在尝试使用 Android 中的共享首选项将数据保存在键值对中。好吧,我正在这样做,问题似乎出现了(考虑到我正在保存大量数据。)有多少不同的键值对被认为仍然可以保存在我的应用程序中?我目前正在考虑保存 100 到 150 个不同的值。 (所有仍然具有唯一的 key 字符串名称。)是否有太多数据无法使用共享首选项存储?

这可能是一个愚蠢的问题,但唯一愚蠢的问题是没有被问到,我似乎找不到答案。我得到的唯一知识是你应该只使用共享首选项保存原始值。 (我已经在这样做了……)-谢谢

最佳答案

多少是太多真的是一个见仁见智的问题。但是,值得了解 SharedPreferences 的工作原理,以便了解使用SharedPreferences` 是否合适。

据我所知,SharedPreferences 的大小没有硬性限制,但是 SharedPreferences 存储在一个 XML 文件中,当您第一次访问 >SharedPreferences 整个文件被读取并存储在内存中,因此这本身会对您的应用程序使用的堆空间产生影响,并可能导致内存不足错误(部分取决于数据的大小,可用的内存以及您的应用程序的其余部分所需的内存使用情况)。因此,对大量数据使用 SharedPreferences 通常意味着您使用了比必要更多的内存。如果您正在将数据从 SharedPreferences 读取到另一个数据结构中,那么您将在内存中存储该数据两次。此外,XML 在文件系统上使用的空间方面不是很有效。

我并不是说使用 SharedPreferences 是错误的,但通常需要在使用内存效率更高的东西(例如 SQLite DB)和提供额外功能(搜索、事务支持、等),与使用 SharedPreferences 的简单性相比。

它还部分取决于您存储的内容 - 例如无论您是存储 boolean 值还是长字符串,都会在内存使用方面产生巨大差异。您对数据所做的操作可能会影响正确的方法。您是否需要它具有可扩展性(例如,您现在存储 100 到 150 个值,但可以增加吗?)。

如果我是你,我会考虑我的数据有多大(即使用的内存量而不仅仅是键值对的数量)?我将来可能需要储存更多吗? SQLite 的额外功能会有用吗?

根据您提供的有限信息,我的直觉是我可能会使用 SQLite,但我的假设是可伸缩性可能很重要并且您存储的字符串超过几个字符,即便如此,我敢肯定有些人会不同意,因为在这种情况下“多少就是太多”是主观的。

关于java - 多少简单的键值对对于在 Android 中存储数据来说太多了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31442872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com