gpt4 book ai didi

java - Android 应用程序的 HashMap 替代品

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

我遇到了 java.util HashMap 的 OOM 问题,所以我正在寻找内存友好的 HashMap 替代标准 Java Hashmap。我尝试了 Trove,它有所改进,但仍然时不时出现 OOM。如果内存有效,我可以适应一些速度损失。

我不是在寻找数据库。只要离线工作,基于文件的 HashMap 实现也很好。我正在存储 int 和 byte 等原语。

另外,请说明您是否有过任何经验,以及您在内存力方面有多大进步。

最佳答案

我可以想到两个适合您的选项——哪个是最好的完全取决于您的应用程序。第一种是使用 Wea​​kReference 或 SoftReference。现在请记住,从 Android 2.3 开始,VM 变得更加激进,因此收集 VM 可能会更频繁地收集这些类型的引用。就我个人而言,出于这个唯一原因,我并不是很喜欢使用这些类型的引用资料,但有些人可能会有不同的看法。第二种选择,也是我推荐的一种,是查看 LRU 缓存。您可以使用 LinkedHashMap 实现自己的 LRU 缓存。但是,如果您使用 map 来存储位图,我强烈建议您查看由 Android 兼容包提供的位图缓存,其中包括位图缓存。以下是您可以用来阅读的几个链接:

Weak References

Soft References

LRU Cache using LinkedHashMap

Android Bitmap Cache and why you should avoid Weak/Soft References

关于java - Android 应用程序的 HashMap 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10843393/

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