java - Hazelcast ConcurrentMap/MultiMap 键

标签 java dictionary hazelcast

我正在声明一个 MultiMap,并想知道将键设置为 Integer 是否是一个好主意。使用整数键与字符串键会加快检索值的速度吗?

MultiMap<String, Order> mmCustomerOrders = hz.getMultiMap("customerOrders");

对比

MultiMap<Integer, Order> mmCustomerOrders = hz.getMultiMap("customerOrders");

谢谢。

最佳答案

它可能会加快速度,特别是根据字符串的长度和复杂性。简单的 ASCII 字符串很容易编码/解码,但如果你有非 ASCII 字符,那就有点复杂了。 但即使在 Integers 上,您也很有可能必须始终创建 Integer 对象,因为值太高,您可以通过覆盖默认的 Integer 缓存大小“java.lang.Integer”来解决此问题(如果您知道范围) .IntegerCache.high”。将其设置为高于 127 会增加预分配整数数量的大小。

实际上,它是否对您产生真正的速度差异的问题不仅仅取决于序列化。我会尝试是否对您有差异,否则我会认为这是过早的优化。如果您的对象非常复杂,情况会有所不同,但对于 String 和 Integer 来说,它不会给您带来真正的好处。

关于java - Hazelcast ConcurrentMap/MultiMap 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23256919/

相关文章:

java - 打印 Java 数组的最简单方法是什么?

python - 从字典列表到 np 数组数组,反之亦然

python - ValueError:格式字符串中无法识别的字符 a

hazelcast - 防止对 Hazelcast Community Edition 集群进行不必要的访问

java - Jlabel 显示旧数字和新数字

java - 确保在 OC4J 集群中串行处理 JMS 消息

java - 为什么我的服务自动连接到代理?

python - 如何获得一套字典?

java - Spring session 惰性反序列化

redis - 用于保持访问配置数据 <10 GB 并从 Flink 流应用程序访问每条记录的最佳分布式缓存?