From 9db3f49ff41bb9d037924cd6995ed598c9619650 Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Tue, 31 Aug 2010 09:51:23 +0000 Subject: Added scalacheck folder, scalacheck source upda... Added scalacheck folder, scalacheck source update script, and scalacheck ant tasks. Build process will now generate a scalacheck jar in the build/pack/lib directory. It generates it from the scalacheck source in the src/scalacheck dir. If the source there gets out of date, it is to be updated manually using the tools/updatescalacheck script. Review by phaller. --- test/benchmarks/source.list | 4 ++ .../scala/collection/parallel/Benchmarking.scala | 1 + .../benchmarks/hashtries/ParallelHashTries.scala | 55 +++++++++++++++++++++- .../benchmarks/parallel_array/CountLight.scala | 1 + 4 files changed, 60 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/benchmarks/source.list b/test/benchmarks/source.list index 88d2b257b2..9ca7a406dd 100644 --- a/test/benchmarks/source.list +++ b/test/benchmarks/source.list @@ -23,6 +23,7 @@ src/scala/collection/parallel/benchmarks/parallel_array/PatchHalf.scala src/scala/collection/parallel/benchmarks/parallel_array/DiffHalf.scala src/scala/collection/parallel/benchmarks/parallel_array/TakeMany.scala src/scala/collection/parallel/benchmarks/parallel_array/PartialMapLight.scala +src/scala/collection/parallel/benchmarks/parallel_array/ScanLight.scala src/scala/collection/parallel/benchmarks/parallel_array/Reverse.scala src/scala/collection/parallel/benchmarks/parallel_array/SpanLight.scala src/scala/collection/parallel/benchmarks/parallel_array/PlusPlus.scala @@ -62,7 +63,10 @@ src/scala/collection/parallel/benchmarks/generic/Dummy.scala src/scala/collection/parallel/benchmarks/parallel_range/RangeBenches.scala src/scala/collection/parallel/benchmarks/Bench.scala src/scala/collection/parallel/benchmarks/hashtries/Foreach.scala +src/scala/collection/parallel/benchmarks/hashtries/Combine.scala +src/scala/collection/parallel/benchmarks/hashtries/MultipleCombine.scala src/scala/collection/parallel/benchmarks/hashtries/Iterate.scala src/scala/collection/parallel/benchmarks/hashtries/Construct.scala src/scala/collection/parallel/benchmarks/hashtries/IntInit.scala src/scala/collection/parallel/benchmarks/hashtries/Lookup.scala +src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala diff --git a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala index 89b5696f9d..2cc3abaf27 100644 --- a/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala +++ b/test/benchmarks/src/scala/collection/parallel/Benchmarking.scala @@ -99,6 +99,7 @@ trait BenchmarkRegister { // parallel hash trie benchmarks register(hashtries.RefParHashTrieBenches.Reduce) register(hashtries.RefParHashTrieBenches.ReduceMedium) + register(hashtries.RefParHashTrieBenches.Reduce2) register(hashtries.RefParHashTrieBenches.Map) register(hashtries.RefParHashTrieBenches.Map2) } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala index bec8ba6650..c68bce93b2 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/hashtries/ParallelHashTries.scala @@ -21,6 +21,7 @@ trait ParHashTrieBenches[K, V] extends StandardParIterableBench[(K, V), ParHashT object Map2 extends IterableBenchCompanion { override def defaultSize = 5000 + override def comparisons = List("jhashtable", "hashtable") def benchName = "map2"; def apply(sz: Int, p: Int, w: String) = new Map2(sz, p, w) } @@ -28,7 +29,7 @@ trait ParHashTrieBenches[K, V] extends StandardParIterableBench[(K, V), ParHashT class Map2(val size: Int, val parallelism: Int, val runWhat: String) extends IterableBench with StandardParIterableBench[(K, V), ParHashTrie[K, V]] { var result: Int = 0 - def comparisonMap = collection.Map() + def comparisonMap = collection.Map("jhashtable" -> runjhashtable _, "hashtable" -> runhashtable _) def runseq = { val r = this.seqcoll.asInstanceOf[collection.immutable.HashMap[K, V]].map(operators.mapper2) result = r.size @@ -38,6 +39,29 @@ trait ParHashTrieBenches[K, V] extends StandardParIterableBench[(K, V), ParHashT //println(collection.parallel.immutable.ParHashTrie.totalcombines) //System.exit(1) } + def runjhashtable = { + val jumap = new java.util.HashMap[K, V]() + val it = this.seqcoll.iterator + while (it.hasNext) { + val p = it.next + jumap.put(p._1, p._2) + } + result = jumap.size + } + def runhashtable = { + val smap = collection.mutable.HashMap[K, V]() + val it = this.seqcoll.iterator + while (it.hasNext) { + val p = it.next + smap.put(p._1, p._2) + } + result = smap.size + } + override def reset = runWhat match { + case "jhashtable" => this.seqcoll = createSequential(size, parallelism) + case "hashtable" => this.seqcoll = createSequential(size, parallelism) + case _ => super.reset + } def companion = Map2 override def repetitionsPerRun = 50 override def printResults { @@ -46,6 +70,29 @@ trait ParHashTrieBenches[K, V] extends StandardParIterableBench[(K, V), ParHashT } } + object Reduce2 extends IterableBenchCompanion { + override def defaultSize = 50000 + override def comparisons = List("hashtable") + def benchName = "reduce2"; + def apply(sz: Int, p: Int, w: String) = new Reduce2(sz, p, w) + } + + class Reduce2(val size: Int, val parallelism: Int, val runWhat: String) + extends IterableBench with StandardParIterableBench[(K, V), ParHashTrie[K, V]] { + private var ht: collection.mutable.HashMap[K, V] = _ + def comparisonMap = collection.Map("hashtable" -> runhashtable _) + def runseq = this.seqcoll.reduceLeft(operators.reducer) + def runpar = this.parcoll.reduce(operators.reducer) + def runhashtable = ht.reduceLeft(operators.reducer) + override def reset = runWhat match { + case "hashtable" => ht = createHashTable(size) + case _ => super.reset + } + def companion = Reduce2 + } + + def createHashTable(sz: Int): collection.mutable.HashMap[K, V] + } @@ -118,4 +165,10 @@ object RefParHashTrieBenches extends ParHashTrieBenches[Dummy, Dummy] with NotBe pht } + def createHashTable(sz: Int) = { + val hm = collection.mutable.HashMap[Dummy, Dummy]() + for (i <- 0 until sz) hm.put(new Dummy(i), new Dummy(i)) + hm + } + } diff --git a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala index 87eb07452f..569b304660 100644 --- a/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala +++ b/test/benchmarks/src/scala/collection/parallel/benchmarks/parallel_array/CountLight.scala @@ -19,3 +19,4 @@ extends Resettable(sz, p, what, new Cont(_), new Array[Any](_), classOf[Cont]) { def runjsr = jsrarr.withFilter(Cont.predjsr).size def comparisonMap = collection.Map("jsr" -> runjsr _) } + -- cgit v1.2.3