summaryrefslogtreecommitdiff
path: root/test/benchmarks
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-06-09 07:56:13 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-06-09 07:56:13 +0000
commit7aae8c7cbcd272f56629ada19623316399ca397f (patch)
treee95467de73a6af7b46484440769134d32346a05a /test/benchmarks
parente045a3ff33793e1d5bb61797f1afdcc3aba9e4c7 (diff)
downloadscala-7aae8c7cbcd272f56629ada19623316399ca397f.tar.gz
scala-7aae8c7cbcd272f56629ada19623316399ca397f.tar.bz2
scala-7aae8c7cbcd272f56629ada19623316399ca397f.zip
Added `combine` and `split` to immutable.HashMap.
Under test/benchmarks there is a `bench` script to run benchmarks - it can be invoked after running building the library. Review by rompf.
Diffstat (limited to 'test/benchmarks')
-rw-r--r--test/benchmarks/src/scala/collection/parallel/Benchmarking.scala1
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala55
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala2
-rw-r--r--test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala3
4 files changed, 59 insertions, 2 deletions
diff --git a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala
index 371ebccef4..f6aa63cb1a 100644
--- a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala
+++ b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala
@@ -92,6 +92,7 @@ trait BenchmarkRegister {
register(hashtries.Iterate)
register(hashtries.Construct)
register(hashtries.Lookup)
+ register(hashtries.Combine)
}
diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala
new file mode 100644
index 0000000000..8c8d17e745
--- /dev/null
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Combine.scala
@@ -0,0 +1,55 @@
+package scala.collection.parallel.benchmarks
+package hashtries
+
+
+
+
+import collection.immutable.{HashMap => HashTrie}
+import collection.mutable.HashMap
+
+
+
+
+
+
+class Combine(val size: Int, val parallelism: Int, val runWhat: String) extends Bench with IntInit {
+ var thattrie = new HashTrie[Int, Int]
+ for (i <- size until 2 * size) thattrie += ((i, i))
+ val thatmap = new HashMap[Int, Int]
+ for (i <- size until 2 * size) thatmap += ((i, i))
+
+ def runpar = throw new UnsupportedOperationException
+ def runseq = runhashtrie
+ def runhashtrie = hashtrie combine thattrie
+ def runappendtrie = hashtrie ++ thattrie
+ def runhashmap = hashmap ++ thatmap
+ def companion = Combine
+ def comparisonMap = Map("hashtrie" -> runhashtrie _, "hashmap" -> runhashmap _, "appendtrie" -> runappendtrie _)
+ override def reset = runWhat match {
+ case "appendtrie" => initHashTrie
+ case _ => super.reset
+ }
+}
+
+
+object Combine extends BenchCompanion {
+ def collectionName = "HashTrie"
+ def benchName = "combine";
+ def apply(sz: Int, p: Int, what: String) = new Combine(sz, p, what)
+ override def defaultSize = 5000
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala
index 6002b5d8b8..f53ea02e36 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala
@@ -14,7 +14,7 @@ import collection.mutable.HashMap
class Foreach(val size: Int, val parallelism: Int, val runWhat: String) extends Bench with IntInit {
def runpar = throw new UnsupportedOperationException
- def runseq = throw new UnsupportedOperationException
+ def runseq = runhashtrie
def runhashmap = hashmap.foreach(n => ())
def runhashtrie = hashtrie.foreach(n => ())
def companion = Foreach
diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala
index 3328dcbe0f..dbbe64e290 100644
--- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala
+++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala
@@ -17,6 +17,7 @@ trait IntInit extends Bench {
def reset = runWhat match {
case "hashmap" => initHashMap
case "hashtrie" => initHashTrie
+ case "seq" => initHashTrie
}
def initHashTrie = {
hashtrie = new HashTrie
@@ -27,4 +28,4 @@ trait IntInit extends Bench {
for (i <- 0 until size) hashmap += ((i, i))
}
-} \ No newline at end of file
+}