我知道使用多键映射比嵌套映射性能更高,这是有道理的,但我编写的测试代码表明,嵌套映射比使用平面多键映射更快且内存效率更高。
嵌套 map : - 3 张 map ,每张 map 有 7 个子 map - 每个子图有4个子子图 - 每个子子图大约有 600,000 个条目 - 总数:约 50,400,000 整体
多键作为简单的字符串映射: - 一张包含 50,400,000 个整体的巨大 map
填充嵌套映射的内存和时间:1462M -> 15sec; 填充多键映射的内存和时间:2138M -> 56sec
我不确定我是否做错了或者我错过了什么。
最佳答案
如果没有基准测试,就很难提供帮助。所以这只是一个猜测:也许您只是无法连接字符串来为单个映射构建新 key 。毕竟您正在创建超过 50M 的新字符串。尝试使用专用映射(例如 apache 或 guava)来快速计算哈希码,而无需构建重型对象
关于java - 嵌套映射与多键映射性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27913998/