1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package scala.collection.parallel.benchmarks
package misc
import collection._ //immutable._
import collection.parallel._//immutable._
object Loader extends BenchCompanion {
def benchName = "Loader"
def collectionName = "General"
def apply(sz: Int, p: Int, what: String) = new Loader(sz, p, what)
override def defaultSize = 100
}
class Loader(val size: Int, val parallelism: Int, val runWhat: String) extends Bench {
def companion = Loader
override def repetitionsPerRun = 1
reset
val wa = Dictionary.wordarray ++ Dictionary.wordarray ++ Dictionary.wordarray
def runseq {
val m = Map(
'2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ"
)
val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit
def wordCode(word: String): String = (word.toUpperCase.toList map charCode).toString
wa groupBy wordCode
}
def runpar {
val m = Map(
'2' -> "ABC", '3' -> "DEF", '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ"
)
val charCode: Map[Char, Char] = for ((digit, letters) <- m; letter <- letters) yield letter -> digit
def wordCode(word: String): String = (word.toUpperCase.toList map charCode).toString
wa.par groupBy wordCode
}
def reset = runWhat match {
case "seq" =>
case "par" =>
collection.parallel.tasksupport.environment.asInstanceOf[concurrent.forkjoin.ForkJoinPool].setParallelism(parallelism)
}
def comparisonMap = Map()
}
|