java - 处理java中的OutOfMemory错误

标签 java memory-management hashmap

我的应用程序中有一个全局HashMap,其中包含自定义对象作为键。第三方将其作为 API 调用,他们将创建一个新的自定义对象,如果 HashMap 中尚不存在该对象,他们会将其放入映射中。在这种情况下,随着 HashMap 大小不断增加,并且部署后增加 JVM 内存非常繁琐,如何管理 OutOfMemoryError。

最佳答案

如果这个映射可以无限增加,那么您需要一个不同的解决方案,而不仅仅是内存中的HashMap。即使您不断增加 JVM 的限制,您使用的实际硬件也是有限的。

您可以将这些 key 保存在数据库(或文件)中,然后对其进行查询。为了提高性能,您可以决定将 N 个最近使用的键保留在内存中作为缓存。

关于java - 处理java中的OutOfMemory错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51056598/

相关文章:

java - 每天同时使所有 Activity session 过期

java - 这个问题的创造性设计模式?

java - 我可以持久保存的内存中 Java 数据库(作为单个巨大的内存块)

java - 有没有一种有效的方法来对参数映射进行排序?

java - 如何处理大型结果集中的数据而不将它们全部加载到内存中?

java - 为什么我的第一个解决方案比这个 Leetcode 问题(单词搜索)的第二个解决方案运行得慢?

c++ - 无法在此基本 Qt 片段中找到错误,但有人告诉我它确实存在?

java - 监控我的应用程序在Android中占用的内存

java - ConcurrentHashMap 有什么缺点吗?

java - 泛型对执行时间的影响