rai*_*tin 3 performance dictionary scala
在单个线程中创建并使用scala Map时,最好的选择是什么?(就像在StringBuffer上使用java类似的最佳赌注,与构建字符串的StringBuilder相比).
选择Map的约束类型是:
我调查过
测试表明,50000键没有明显的赢家.我发现了一些
然而,问题是这种情况下最安全的赌注是什么?为什么?
如果你的地图不是非常小而且不是很大,并且你的关键是a String,那么这collection.mutable.AnyRefMap是一个不错的选择. collection.mutable.LongMap如果你有Long钥匙就更快.它们存在的原因恰恰是对于常见用例而言是快速的.
如果大多数地图都非常小(0-4个元素),那么LinkedHashMap往往是最好的,因为它避免了哈希表的开销.(当4个或更少的元素时,不可变的地图也不错.)
如果地图真的很大(数百万个键/值对),那么标准collection.mutable.HashMap就是要走的路,因为当你的空间用完了单独的键时,性能会稍微优雅地降低.