def test(collectionSize: Int) {
println("\"Buffer (size " + collectionSize + "), test results:\"\n")
import scalqa.Stream.Enable._
class Foo(val id: Int) { def even = id % 2 == 0 }
class Bar(val foo: Foo)
val buffer: collection.mutable.Buffer[Bar] = (1 to collectionSize).map(i =>new Bar(new Foo(i))).toBuffer
scalqa.Util.Benchmark(
("Buffer ", () => buffer .filter(_.foo.even).flatMap(_ => buffer).map(_.foo).count(_.even)),
("Buffer as Stream", () => buffer.all.filter(_.foo.even).flatMap(_ => buffer).map(_.foo).count(_.even)))
}
Results to Expect
"Buffer (size 10), test results:"
Num Name Ops/Sec % Memory % Control Value Avg
--- ---------------- ------- --- ------ --- -----------------
1 Buffer 359.0k 231.5k 100252 Buffer as Stream 1.4m 1003852425"Buffer (size 100), test results:"
Num Name Ops/Sec % Memory % Control Value Avg
--- ---------------- ------- --- ------ --- -----------------
1 Buffer 6.0k 35122.6k 10025002 Buffer as Stream 17.2k 10054302500"Buffer (size 1000), test results:"
Num Name Ops/Sec % Memory % Control Value Avg
--- ---------------- ------- --- ------ --- -----------------
1 Buffer 70357.6m 1002500002 Buffer as Stream 19710028.6k 0250000
Code to Run
Results to Expect
Specialized Test
Code to Run
Results to Expect