Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.openjdk.jmh.samples
- import org.openjdk.jmh.annotations._
- import scala.collection.{mutable, immutable}
- /*
- Scala immutable map is ~9x slower than java Hashmap for lookups.
- Scala mutable map is ~2x slower than java Hashmap for lookups.
- Benchmark results:
- Scala immutable map
- [info] ToBenchmark.imapBench thrpt 3 45984712.982 ± 70602214.006 ops/s
- Java Hashmap
- [info] ToBenchmark.jmapBench thrpt 3 420077614.268 ± 137667083.271 ops/s
- Scala mutable map
- [info] ToBenchmark.mmapBench thrpt 3 232789150.801 ± 93773395.056 ops/s
- */
- @Fork(1)
- @Warmup(iterations = 3)
- @Measurement(iterations = 3)
- @State(Scope.Benchmark)
- class ToBenchmark {
- val imap = (1 to 100000).map{ x => x -> x }.toMap
- val mmap = {
- val m = mutable.Map[Int, Int]()
- for (i <- 1 to 10000) m += i -> i
- m
- }
- val jmap = {
- val hm = new java.util.HashMap[Int, Int]()
- for (i <- 1 to 10000) hm.put(i, i)
- hm
- }
- @Benchmark
- def imapBench(): Unit = {
- imap(1)
- }
- @Benchmark
- def mmapBench(): Unit = {
- mmap(1)
- }
- @Benchmark
- def jmapBench(): Unit = {
- jmap.get(1)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement