小编sim*_*lei的帖子

轻量级地图实现Java(少量内存开销)

我目前正在用java编写一些代码,这些代码是一个项目的小框架,它围绕着一个包含数十亿条目的数据库.我希望保持高级别,并且从数据库中重新获得的数据应该可以轻松用于统计推断.我决定在这个项目中使用Map接口.

一个核心概念是在处理可读代码的单个数据集(我指的是数据库中的列)时将属性("数据库中的列")映射到值("单元"):我使用枚举对象(名为"属性") )对于属性类型,这意味着映射<Attribute, String>,因为数据元素都是String(也不是很大,最多40个字符左右).有15列,所以有15个枚举,地图只有很多或更少的条目.

所以看起来,我有时会有大量的Map对象浮动,但有效载荷相对较小(15-).我的目标是,与实际有效负载相比,由于实现内存开销,不会使内存爆炸.(拉伸目标:对cpu使用做同样的事情;])

到目前为止,我并不熟悉Java Collections的所有不同实现,当我今天遇到问题时,我查看了迄今为止最受欢迎的'HashMap',并且不满意那里有多少内存开销被宣布.我确信,对于标准实现而言,有许多实现没有随Java一起提供.谷歌搜索我的案子没有带来太大的结果,所以我问你:

你知道我的用例的Map的良好实现(低入口数,低值大小,可枚举键,......)

我希望我的用例清晰明确,并为您的输入感到焦虑=)非常感谢!


伸展答案目标,绝对可选,只有你有时间和知识:集合的其他实现适合于:

  • 处理属性(字符串事物)向量和推理数据的矩阵(计数/概率)(矩阵:这里我现在真的很无能,到目前为止我真的没有认真的数学工作)
  • 用于统计推断的数学库,见上文

java math collections performance memory-management

2
推荐指数
2
解决办法
5643
查看次数

标签 统计

collections ×1

java ×1

math ×1

memory-management ×1

performance ×1