From 2616dd6348a87d3d9cd306d3ab76d039c15d10c4 Mon Sep 17 00:00:00 2001 From: Lucien Pereira Date: Sat, 28 Jan 2012 14:43:45 +0100 Subject: Added benchmarking files, in order to easily compare various implementations performances. --- test/benchmarking/TreeSetIterator.scala | 66 +++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/benchmarking/TreeSetIterator.scala (limited to 'test/benchmarking/TreeSetIterator.scala') diff --git a/test/benchmarking/TreeSetIterator.scala b/test/benchmarking/TreeSetIterator.scala new file mode 100644 index 0000000000..c3b19aa29f --- /dev/null +++ b/test/benchmarking/TreeSetIterator.scala @@ -0,0 +1,66 @@ + +object TreeSetIterator { + + def main(args: Array[String]): Unit = { + val n = 500000 + new JavaUtilTS(n).main(args) + new MutableTS(n).main(args) + new ImmutableTS(n).main(args) + } +} + +class Dummy(val a: Int) extends math.Ordered[Dummy] { + def compare(other: Dummy) = this.a - other.a + + override def toString = a.toString + } + + +class JavaUtilTS(val length: Int) extends testing.Benchmark { + var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray + var t: java.util.TreeSet[Dummy] = null + + def run = { + t = new java.util.TreeSet[Dummy]() + data foreach { a => t add a } + + var i: Dummy = null + var it = t.iterator + while (it.hasNext) { + i = it.next + } + i + } +} + +class MutableTS(val length: Int) extends testing.Benchmark { + var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray + var t: collection.mutable.TreeSet[Dummy] = null + + def run = { + t = collection.mutable.TreeSet[Dummy](data: _*) + + var i: Dummy = null + var it = t.iterator + while (it.hasNext) { + i = it.next + } + i + } +} + +class ImmutableTS(val length: Int) extends testing.Benchmark { + var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray + var t: collection.immutable.TreeSet[Dummy] = null + + def run = { + t = collection.immutable.TreeSet[Dummy](data: _*) + + var i: Dummy = null + var it = t.iterator + while (it.hasNext) { + i = it.next + } + i + } +} -- cgit v1.2.3 From 5725b2562070f9c37d5ca51008ddef0457a37121 Mon Sep 17 00:00:00 2001 From: aleksandar Date: Mon, 30 Jan 2012 13:03:23 +0100 Subject: Fixed the benchmarks a bit. --- test/benchmarking/TreeSetInsert.scala | 15 +++++++++------ test/benchmarking/TreeSetIterator.scala | 15 +++++++++------ test/benchmarking/TreeSetRemove.scala | 15 +++++++++------ 3 files changed, 27 insertions(+), 18 deletions(-) (limited to 'test/benchmarking/TreeSetIterator.scala') diff --git a/test/benchmarking/TreeSetInsert.scala b/test/benchmarking/TreeSetInsert.scala index 61b064ae33..9ede8aedc5 100644 --- a/test/benchmarking/TreeSetInsert.scala +++ b/test/benchmarking/TreeSetInsert.scala @@ -3,9 +3,9 @@ object TreeSetInsert { def main(args: Array[String]): Unit = { val n = 500000 - new JavaUtilTS(n).main(args) - new MutableTS(n).main(args) - new ImmutableTS(n).main(args) + JavaUtilTS.main(args) + MutableTS.main(args) + ImmutableTS.main(args) } } @@ -16,7 +16,8 @@ class Dummy(val a: Int) extends math.Ordered[Dummy] { } -class JavaUtilTS(val length: Int) extends testing.Benchmark { +object JavaUtilTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: java.util.TreeSet[Dummy] = null @@ -32,7 +33,8 @@ class JavaUtilTS(val length: Int) extends testing.Benchmark { } } -class MutableTS(val length: Int) extends testing.Benchmark { +object MutableTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: collection.mutable.TreeSet[Dummy] = null @@ -48,7 +50,8 @@ class MutableTS(val length: Int) extends testing.Benchmark { } } -class ImmutableTS(val length: Int) extends testing.Benchmark { +object ImmutableTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: collection.immutable.TreeSet[Dummy] = null diff --git a/test/benchmarking/TreeSetIterator.scala b/test/benchmarking/TreeSetIterator.scala index c3b19aa29f..08c20e8b0c 100644 --- a/test/benchmarking/TreeSetIterator.scala +++ b/test/benchmarking/TreeSetIterator.scala @@ -3,9 +3,9 @@ object TreeSetIterator { def main(args: Array[String]): Unit = { val n = 500000 - new JavaUtilTS(n).main(args) - new MutableTS(n).main(args) - new ImmutableTS(n).main(args) + JavaUtilTS.main(args) + MutableTS.main(args) + ImmutableTS.main(args) } } @@ -16,7 +16,8 @@ class Dummy(val a: Int) extends math.Ordered[Dummy] { } -class JavaUtilTS(val length: Int) extends testing.Benchmark { +object JavaUtilTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: java.util.TreeSet[Dummy] = null @@ -33,7 +34,8 @@ class JavaUtilTS(val length: Int) extends testing.Benchmark { } } -class MutableTS(val length: Int) extends testing.Benchmark { +object MutableTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: collection.mutable.TreeSet[Dummy] = null @@ -49,7 +51,8 @@ class MutableTS(val length: Int) extends testing.Benchmark { } } -class ImmutableTS(val length: Int) extends testing.Benchmark { +object ImmutableTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: collection.immutable.TreeSet[Dummy] = null diff --git a/test/benchmarking/TreeSetRemove.scala b/test/benchmarking/TreeSetRemove.scala index 68c07ce70a..f84066f336 100644 --- a/test/benchmarking/TreeSetRemove.scala +++ b/test/benchmarking/TreeSetRemove.scala @@ -3,9 +3,9 @@ object TreeSetRemove { def main(args: Array[String]): Unit = { val n = 500000 - new JavaUtilTS(n).main(args) - new MutableTS(n).main(args) - new ImmutableTS(n).main(args) + JavaUtilTS.main(args) + MutableTS.main(args) + ImmutableTS.main(args) } } @@ -16,7 +16,8 @@ class Dummy(val a: Int) extends math.Ordered[Dummy] { } -class JavaUtilTS(val length: Int) extends testing.Benchmark { +object JavaUtilTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: java.util.TreeSet[Dummy] = null @@ -33,7 +34,8 @@ class JavaUtilTS(val length: Int) extends testing.Benchmark { } } -class MutableTS(val length: Int) extends testing.Benchmark { +object MutableTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: collection.mutable.TreeSet[Dummy] = null @@ -49,7 +51,8 @@ class MutableTS(val length: Int) extends testing.Benchmark { } } -class ImmutableTS(val length: Int) extends testing.Benchmark { +object ImmutableTS extends testing.Benchmark { + val length = sys.props("length").toInt var data: Array[Dummy] = (0 until length) map { a => new Dummy(a) } toArray var t: collection.immutable.TreeSet[Dummy] = null -- cgit v1.2.3