5

是否有任何已发布的微基准可以将 Scala 可变和不可变集合相互比较,以及java.util.concurrent在多线程环境中的集合?我对读者远远超过作者的情况特别感兴趣,比如在服务器端代码中缓存 HashMap。

Clojure 集合的微基准也是可以接受的,因为它们的算法类似于 Scala 2.8 持久性集合中使用的算法。

如果还没有完成,我会自己编写,但是编写好的微基准测试并非易事。

4

3 回答 3

2

这里有一些比较 Java 哈希映射、Scala 哈希映射、Java 并发哈希映射、Java 并发跳过列表、Java 并行数组和 Scala 并行集合的结果(技术报告末尾):

http://infoscience.epfl.ch/record/165523/files/techrep.pdf

这里有并发跳过列表和 Java 并发哈希映射的更详细比较(也在报告主要部分的末尾,附录之前):

http://infoscience.epfl.ch/record/166908/files/ctries-techreport.pdf

这些微基准测试专注于测试单个操作的性能。如果您打算编写自己的基准测试,这可能会很有用:

http://buytaert.net/files/oopsla07-georges.pdf

于 2011-09-28T12:10:27.500 回答
1

Li Haoyi 的Benchmarking Scala Collections是一项详细而全面的研究,可以解决您的查询。在这里引用太长了。

于 2016-10-14T17:28:55.183 回答
0

那你为什么不尝试使用 java.util.concurrent.ConcurrentHashMap 呢?这样您就不必同步,并且您的百万次读取会更快(以及一次写入)。

于 2011-09-27T18:47:59.253 回答