Range Benchmark

Code to Run

def specializedTest(collectionSize: Int) {
  println("\"Range (size " + collectionSize + "), specialized test results:\"\n")

  import scalqa.Stream.Enable._

  val range: Range = 1 to collectionSize

  scalqa.Util.Benchmark(
    ("Range          ", () => range.    filter(_ % 2 == 0).flatMap(_ => range).map(_ / 2L).sum),
    ("Range as Stream", () => range.all.filter(_ % 2 == 0).flatMap(_ => range).map(_ / 2L).sum))
}

Results to Expect

"Range (size 10), specialized test results:"

Num Name            Ops/Sec %   Memory %   Control Value Avg
--- --------------- ------- --- ------ --- -----------------
1   Range           380.2k  19  1.3k   100 125
2   Range as Stream 1.9m    100 385    29  125

"Range (size 100), specialized test results:"

Num Name            Ops/Sec %   Memory %   Control Value Avg
--- --------------- ------- --- ------ --- -----------------
1   Range           4.4k    9   154.8k 100 125000
2   Range as Stream 44.9k   100 666    0   125000

"Range (size 1000), specialized test results:"

Num Name            Ops/Sec %   Memory %   Control Value Avg
--- --------------- ------- --- ------ --- -----------------
1   Range           42      7   15.7m  100 125000000
2   Range as Stream 535     100 13.1k  0   125000000