package scala.collection.parallel.benchmarks.arrays import scala.collection.parallel.benchmarks._ object ObjectAccess extends BenchCompanion { def collectionName = "array"; def benchName = "access-obj"; def apply(sz: Int, p: Int, what: String) = new ObjectAccess(sz, p, what) override def comparisons = List("any", "cast", "gencast", "manif", "unknown") override def defaultSize = 100000 } class ObjectAccess(sz: Int, p: Int, what: String) extends Resetting(Dummy(_), sz, p, what) with UnknownManif[Dummy] { def companion = ObjectAccess def runseq {} def runpar {} def runany = { var i = 0 while (i < sz) { val d = anyarray(i).asInstanceOf[Dummy] Dummy.dummyOp(d) i += 1 } } def runcast = { var i = 0 while (i < sz) { val d = Arrays.apply(castarray, i).asInstanceOf[Dummy] i += 1 } } def rungenericcast = { var i = 0 while (i < sz) { val d = Arrays.genericApply(gencastarray, i) i += 1 } } def runmanif = { var i = 0 while (i < sz) { val d = manifarray(i) if (d.in < 0) i += 1 i += 1 } } def comparisonMap = collection.Map("any" -> runany _, "cast" -> runcast _, "gencast" -> rungenericcast _, "manif" -> runmanif _, "unknown" -> rununknown _) }