作者:拍友2502904975 | 来源:互联网 | 2023-05-23 22:25
我正在与一位同事进行一些测试,我们从数据库中提取数据(大约350,000条记录),将每条记录转换为一个对象和一个关键对象,然后将它们填充到ImmutableMap.Builder中.
当我们调用build()方法时,它花了很长时间,可能是由于ImmutableMap(dupe keys,nulls等)附带的所有数据完整性检查.公平地说,我们也试图使用一个hashmap,这需要一段时间但不像ImmutableMap那么长.我们最终决定只使用ConcurrentHashMap,当迭代记录时,我们填充了9个线程,并将其包装在一个不可修改的映射中.表现很好.
我在文档中注意到它读取的ImutableMap没有针对"equals()"操作进行优化.作为一个顽固的不可变因素,我希望ImmutableMap适用于大数据量,但我觉得它并不适合它.这个假设是对的吗?它是否仅针对中小型数据集进行了优化?我需要通过"copyOf()"或其他东西调用隐藏的实现吗?