summaryrefslogtreecommitdiff
path: root/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Resetting.scala
blob: 22d2107f627920e3e4f922464f8ed5438bf7c2f3 (plain) (blame)
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
package scala.collection.parallel.benchmarks.arrays


import scala.collection.parallel.benchmarks._


abstract class Resetting[T: ClassTag](elemcreate: Int => T, sz: Int, p: Int, what: String)
extends Bench {
  val size = sz
  val parallelism = p
  val runWhat = what

  var anyarray: Array[Any] = null
  var castarray: AnyRef = null
  var gencastarray: Array[T] = null
  var manifarray: Array[T] = null

  reset

  def reset = what match {
    case "any" =>
      anyarray = new Array[Any](sz)
      for (i <- 0 until sz) anyarray(i) = elemcreate(i)
    case "cast" =>
      val arr = new Array[T](sz)
      for (i <- 0 until sz) arr(i) = elemcreate(i)
      castarray = arr
    case "gencast" =>
      gencastarray = new Array[T](sz)
      for (i <- 0 until sz) gencastarray(i) = elemcreate(i)
    case "manif" =>
      manifarray = new Array[T](sz)
      for (i <- 0 until sz) manifarray(i) = elemcreate(i)
    case "unknown" =>
      manifarray = new Array[T](sz)
      for (i <- 0 until sz) manifarray(i) = elemcreate(i)
    case _ =>
  }
}