我正在尝试对不断运行 OOM 的服务器进行内存优化。
服务器中的大多数对象(按计数)采用以下形式:
- 每个对象都是一个HashMap
- HashMap 键是字符串
- HashMap 值是 Attribute 类的对象,它只有一个 int 和 2 个布尔值。
重要的警告:95% 的此类哈希图永远只有一个键;我知道创建哈希图时是否是这种情况。
有数百万个这样的哈希图。
我已经问了一个关于优化这些哈希映射内存的单独问题,并且有人在评论中建议重新设计我的整个数据结构可能会更好,因为即使初始大小为“1”哈希映射仍然占用额外的内存。
因此,我的问题是;有没有更好的 Java 数据结构可以实现,它可以以更好的内存效率存储相同的确切数据?
注意:我需要能够查找特定值是否作为键存在;因此我考虑过但拒绝将数据存储在 [string_value, int, boolean, boolean] 的五元组列表中。