summaryrefslogblamecommitdiff
path: root/test/benchmarks/src/scala/collection/parallel/benchmarks/arrays/Resetting.scala
blob: 22d2107f627920e3e4f922464f8ed5438bf7c2f3 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11





                                                   
                                                                                          



                     
 



                                   
 
       
 



















                                                           
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 _ =>
  }
}