aboutsummaryrefslogtreecommitdiff
path: root/tests/run/t5293-map.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-06-25 09:45:27 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-07-13 15:31:16 +0200
commitef536f00d9d480f28db3093b9dc09a90041cfb74 (patch)
treeca82afa7a37ce866978b0b66904941672f2dacc3 /tests/run/t5293-map.scala
parent9185428b63b138f8c05ade5592e59956296b5128 (diff)
downloaddotty-ef536f00d9d480f28db3093b9dc09a90041cfb74.tar.gz
dotty-ef536f00d9d480f28db3093b9dc09a90041cfb74.tar.bz2
dotty-ef536f00d9d480f28db3093b9dc09a90041cfb74.zip
Enable 61 tests that succeed.
Diffstat (limited to 'tests/run/t5293-map.scala')
-rw-r--r--tests/run/t5293-map.scala88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/run/t5293-map.scala b/tests/run/t5293-map.scala
new file mode 100644
index 000000000..1ef7d97e5
--- /dev/null
+++ b/tests/run/t5293-map.scala
@@ -0,0 +1,88 @@
+
+
+
+import scala.collection.JavaConverters._
+
+
+
+object Test extends dotty.runtime.LegacyApp {
+
+ def bench(label: String)(body: => Unit): Long = {
+ val start = System.nanoTime
+
+ 0.until(10).foreach(_ => body)
+
+ val end = System.nanoTime
+
+ //println("%s: %s ms".format(label, (end - start) / 1000.0 / 1000.0))
+
+ end - start
+ }
+
+ def benchJava(values: java.util.Map[Int, Int]) = {
+ bench("Java Map") {
+ val m = new java.util.HashMap[Int, Int]
+
+ m.putAll(values)
+ }
+ }
+
+ def benchScala(values: Iterable[(Int, Int)]) = {
+ bench("Scala Map") {
+ val m = new scala.collection.mutable.HashMap[Int, Int]
+
+ m ++= values
+ }
+ }
+
+ def benchScalaSorted(values: Iterable[(Int, Int)]) = {
+ bench("Scala Map sorted") {
+ val m = new scala.collection.mutable.HashMap[Int, Int]
+
+ m ++= values.toArray.sorted
+ }
+ }
+
+ def benchScalaPar(values: Iterable[(Int, Int)]) = {
+ bench("Scala ParMap") {
+ val m = new scala.collection.parallel.mutable.ParHashMap[Int, Int] map { x => x }
+
+ m ++= values
+ }
+ }
+
+ val total = 50000
+ val values = (0 until total) zip (0 until total)
+ val map = scala.collection.mutable.HashMap.empty[Int, Int]
+
+ map ++= values
+
+ // warmup
+ for (x <- 0 until 5) {
+ benchJava(map.asJava)
+ benchScala(map)
+ benchScalaPar(map)
+ benchJava(map.asJava)
+ benchScala(map)
+ benchScalaPar(map)
+ }
+
+ val javamap = benchJava(map.asJava)
+ val scalamap = benchScala(map)
+ val scalaparmap = benchScalaPar(map)
+
+ // println(javamap)
+ // println(scalamap)
+ // println(scalaparmap)
+
+ assert(scalamap < (javamap * 10), "scalamap: " + scalamap + " vs. javamap: " + javamap)
+ assert(scalaparmap < (javamap * 10), "scalaparmap: " + scalaparmap + " vs. javamap: " + javamap)
+}
+
+
+
+
+
+
+
+