A Comparison of Functional Data Structures on the JVM

  • For those interested in this type of thing, Li Haoyi created an in depth look at the Scala structures.

    http://www.lihaoyi.com/post/BenchmarkingScalaCollections.htm...

    It includes some interesting commentary as well.

  • Note that Scala 2.13 (next release) includes a CHAMP hash map implementation, first contributed by the original author and then refined by several Scala contributors, most notably Jason Zaugg (@retronym) and Josh (@joshlemer)

  • reddit thread from a year ago https://www.reddit.com/r/programming/comments/5790ky/benchma...

  • Thanks for sharing! One quick question: in the methodology section, you mention that the results are from a median value out of repeated runs. While I get that you run JITted code, you also mention that it makes the runs isolated from GC side-effects.

    Just out of curiosity, what did you do to ensure that GC would not interfere with the execution while the tests are running?

  • Pet peeve: I wish people would call them persistent or fork-on-write, but functional at least is better than immutable.

  • I see you have written interfaces like List & Maps. Probably, we need to use interfaces from Java native, but provide better implementation through bifurcan. This makes it easy for existing applications to switch to bifurcan where they need.

  • Indeed great work! Is Google's guava collections part of this research?

  • Great work!