假设一个潜在的多线程环境。我想将地图与(值)缓存一起使用。为什么我更喜欢其中之一
collection.immutable.Map.empty[ K, SoftReference[ V ]]
new com.google.common.collect.MapMaker.softValues.makeMap[ K, V ]
超过另一个?该地图将存储在 STM 参考中,因此不可变将是直截了当的。此外,K
很可能会是Long
,所以我可以使用collection.immutable.LongMap
.
在这里使用谷歌收藏有什么好处?性能和空间明智?