Skip to content
Snippets Groups Projects
AbstractCollectionBenchmark.scala 702 B
Newer Older
Matt Bovel's avatar
Matt Bovel committed
package benchmarks.midterm22

import org.openjdk.jmh.annotations.*

@State(Scope.Benchmark)
//@Fork(jvmArgsAppend = Array("-Djava.util.concurrent.ForkJoinPool.common.parallelism=4"))
abstract class AbstractCollectionBenchmark:
  @Param(Array("10000", "100000", "1000000", "10000000"))
  var size: Int = _

  @Param(Array("Vector", "Array", "ArrayBuffer", "List"))
  var collection: String = _

  var haystack: Iterable[Int] = _

  @Setup(Level.Invocation)
  def setup() =
    val gen = (1 to (size * 2) by 2)
    haystack = collection match
      case "Vector"      => gen.toVector
      case "Array"       => gen.toArray
      case "ArrayBuffer" => gen.toBuffer
      case "List"        => gen.toList