0

潜在的にマルチスレッド環境を想定します。(値)キャッシュと一緒にマップを使用したい。なぜ私は

collection.immutable.Map.empty[ K, SoftReference[ V ]]
new com.google.common.collect.MapMaker.softValues.makeMap[ K, V ]

他の上に?マップはSTMrefに格納されるため、不変は単純明快で問題ありません。さらに、Kそうなる可能性が高いLongので、を使用することができますcollection.immutable.LongMap

ここでグーグルコレクションを使用する利点は何でしょうか?パフォーマンスとスペースの面で?

4

1 に答える 1

0

IMO Google のアプローチの主な利点は、結果として得られる API がよりクリーンになるSoftReferenceことです。しかし、保証された不変性とネイティブな Scala API は、別の列のマークです。

mixin を書いて実験してみたいと思います (MultiMap標準ライブラリに既にあるものに似ていますが、これは残念ながら変更可能です)。

于 2011-04-12T21:43:50.003 に答える