aboutsummaryrefslogtreecommitdiff
path: root/benchmarks
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/2.12/src/adt1.scala63
-rw-r--r--benchmarks/2.12/src/foo.scala1
-rw-r--r--benchmarks/2.12/src/kittens/one.scala53
-rw-r--r--benchmarks/2.12/src/magnolia/one.scala49
-rw-r--r--benchmarks/2.12/src/magnolia/show_tree_50.scala100
-rw-r--r--benchmarks/2.12/src/runtime.scala66
-rw-r--r--benchmarks/2.12/src/scalaz-deriving/one.scala55
7 files changed, 308 insertions, 79 deletions
diff --git a/benchmarks/2.12/src/adt1.scala b/benchmarks/2.12/src/adt1.scala
index f9ab65f..2efbdd4 100644
--- a/benchmarks/2.12/src/adt1.scala
+++ b/benchmarks/2.12/src/adt1.scala
@@ -20,40 +20,45 @@ import Scalaz._
@deriving(Show, Equal) sealed trait Alphabet
@deriving(Show, Equal) case class Greek(άλφα: Letter,
- βήτα: Letter,
- γάμα: Letter,
- δέλτα: Letter,
- έψιλον: Letter,
- ζήτα: Letter,
- ήτα: Letter,
- θήτα: Letter)
+ βήτα: Letter,
+ γάμα: Letter,
+ δέλτα: Letter,
+ έψιλον: Letter,
+ ζήτα: Letter,
+ ήτα: Letter,
+ θήτα: Letter)
extends Alphabet
-@deriving(Show, Equal) case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter)
+@deriving(Show, Equal) case class Cyrillic(б: Letter,
+ в: Letter,
+ г: Letter,
+ д: Letter,
+ ж: Letter,
+ з: Letter)
extends Alphabet
@deriving(Show, Equal) case class Latin(a: Letter,
- b: Letter,
- c: Letter,
- d: Letter,
- e: Letter,
- f: Letter,
- g: Letter,
- h: Letter,
- i: Letter,
- j: Letter,
- k: Letter,
- l: Letter,
- m: Letter,
- n: Letter,
- o: Letter,
- p: Letter,
- q: Letter,
- r: Letter,
- s: Letter,
- t: Letter,
- u: Letter,
- v: Letter)
+ b: Letter,
+ c: Letter,
+ d: Letter,
+ e: Letter,
+ f: Letter,
+ g: Letter,
+ h: Letter,
+ i: Letter,
+ j: Letter,
+ k: Letter,
+ l: Letter,
+ m: Letter,
+ n: Letter,
+ o: Letter,
+ p: Letter,
+ q: Letter,
+ r: Letter,
+ s: Letter,
+ t: Letter,
+ u: Letter,
+ v: Letter)
extends Alphabet
//@deriving(Show, Equal) case class Letter(name: String, phonetic: String)
diff --git a/benchmarks/2.12/src/foo.scala b/benchmarks/2.12/src/foo.scala
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/benchmarks/2.12/src/foo.scala
@@ -0,0 +1 @@
+
diff --git a/benchmarks/2.12/src/kittens/one.scala b/benchmarks/2.12/src/kittens/one.scala
new file mode 100644
index 0000000..9e54511
--- /dev/null
+++ b/benchmarks/2.12/src/kittens/one.scala
@@ -0,0 +1,53 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+
+sealed trait Alphabet
+
+case class Greek(άλφα: Letter,
+ βήτα: Letter,
+ γάμα: Letter,
+ δέλτα: Letter,
+ έψιλον: Letter,
+ ζήτα: Letter,
+ ήτα: Letter,
+ θήτα: Letter)
+ extends Alphabet
+
+case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter)
+ extends Alphabet
+
+case class Latin(a: Letter,
+ b: Letter,
+ c: Letter,
+ d: Letter,
+ e: Letter,
+ f: Letter,
+ g: Letter,
+ h: Letter,
+ i: Letter,
+ j: Letter,
+ k: Letter,
+ l: Letter,
+ m: Letter,
+ n: Letter,
+ o: Letter,
+ p: Letter,
+ q: Letter,
+ r: Letter,
+ s: Letter,
+ t: Letter,
+ u: Letter,
+ v: Letter)
+ extends Alphabet
+
+case class Letter(name: String, phonetic: String)
+case class Country(name: String, language: Language)
+case class Language(name: String, code: String, alphabet: Latin)
+
+object Gen {
+ derive.show[Alphabet]
+ derive.eq[Alphabet]
+}
diff --git a/benchmarks/2.12/src/magnolia/one.scala b/benchmarks/2.12/src/magnolia/one.scala
new file mode 100644
index 0000000..4fb325c
--- /dev/null
+++ b/benchmarks/2.12/src/magnolia/one.scala
@@ -0,0 +1,49 @@
+import magnolia._, examples._
+
+sealed trait Alphabet
+
+case class Greek(άλφα: Letter,
+ βήτα: Letter,
+ γάμα: Letter,
+ δέλτα: Letter,
+ έψιλον: Letter,
+ ζήτα: Letter,
+ ήτα: Letter,
+ θήτα: Letter)
+ extends Alphabet
+
+case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter)
+ extends Alphabet
+
+case class Latin(a: Letter,
+ b: Letter,
+ c: Letter,
+ d: Letter,
+ e: Letter,
+ f: Letter,
+ g: Letter,
+ h: Letter,
+ i: Letter,
+ j: Letter,
+ k: Letter,
+ l: Letter,
+ m: Letter,
+ n: Letter,
+ o: Letter,
+ p: Letter,
+ q: Letter,
+ r: Letter,
+ s: Letter,
+ t: Letter,
+ u: Letter,
+ v: Letter)
+ extends Alphabet
+
+case class Letter(name: String, phonetic: String)
+case class Country(name: String, language: Language)
+case class Language(name: String, code: String, alphabet: Latin)
+
+object Gen {
+ Show.gen[adt.Alphabet]
+ Eq.gen[adt.Alphabet]
+}
diff --git a/benchmarks/2.12/src/magnolia/show_tree_50.scala b/benchmarks/2.12/src/magnolia/show_tree_50.scala
index a06513a..3e593e7 100644
--- a/benchmarks/2.12/src/magnolia/show_tree_50.scala
+++ b/benchmarks/2.12/src/magnolia/show_tree_50.scala
@@ -1,58 +1,58 @@
import magnolia._, examples._
object Gen {
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
- Show.generic[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
+ Show.gen[adt.Tree]
}
diff --git a/benchmarks/2.12/src/runtime.scala b/benchmarks/2.12/src/runtime.scala
new file mode 100644
index 0000000..6a94163
--- /dev/null
+++ b/benchmarks/2.12/src/runtime.scala
@@ -0,0 +1,66 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+import estrapade._
+import magnolia._
+
+object Gen extends TestApp {
+
+ val latin = Latin(
+ Letter("one", "two"),
+ Letter("three", "four"),
+ Letter("five", "six"),
+ Letter("seven", "eight"),
+ Letter("nine", "ten"),
+ Letter("eleven", "twelve"),
+ Letter("one", "two"),
+ Letter("three", "four"),
+ Letter("five", "six"),
+ Letter("seven", "eight"),
+ Letter("nine", "ten"),
+ Letter("eleven", "twelve"),
+ Letter("one", "two"),
+ Letter("three", "four"),
+ Letter("five", "six"),
+ Letter("seven", "eight"),
+ Letter("nine", "ten"),
+ Letter("eleven", "twelve"),
+ Letter("one", "two"),
+ Letter("three", "four"),
+ Letter("five", "six"),
+ Letter("seven", "eight")
+ )
+
+ def tests() = {
+ println("Warming up JVM")
+
+ var n = 0
+ var s: Any = null
+ while (n < 5000000) {
+ s = derive.show[Latin] //.show(latin)
+ s = magnolia.examples.Show.generic[Latin] //.show(latin)
+ n += 1
+ }
+
+ println("Warm")
+ test("Kittens") {
+ var n = 0
+ var s: Any = null
+ while (n < 1000000) {
+ s = derive.show[Latin] //.show(latin)
+ n += 1
+ }
+ }.returns()
+
+ test("Magnolia") {
+ var n = 0
+ var s: Any = null
+ while (n < 1000000) {
+ s = magnolia.examples.Show.generic[Latin] //.show(latin)
+ n += 1
+ }
+ }.returns()
+ }
+}
diff --git a/benchmarks/2.12/src/scalaz-deriving/one.scala b/benchmarks/2.12/src/scalaz-deriving/one.scala
new file mode 100644
index 0000000..ecd0da2
--- /dev/null
+++ b/benchmarks/2.12/src/scalaz-deriving/one.scala
@@ -0,0 +1,55 @@
+import scalaz._
+import Scalaz._
+
+@deriving(Show, Equal) sealed trait Alphabet
+
+@deriving(Show, Equal) case class Greek(άλφα: Letter,
+ βήτα: Letter,
+ γάμα: Letter,
+ δέλτα: Letter,
+ έψιλον: Letter,
+ ζήτα: Letter,
+ ήτα: Letter,
+ θήτα: Letter)
+ extends Alphabet
+
+@deriving(Show, Equal) case class Cyrillic(б: Letter,
+ в: Letter,
+ г: Letter,
+ д: Letter,
+ ж: Letter,
+ з: Letter)
+ extends Alphabet
+
+@deriving(Show, Equal) case class Latin(a: Letter,
+ b: Letter,
+ c: Letter,
+ d: Letter,
+ e: Letter,
+ f: Letter,
+ g: Letter,
+ h: Letter,
+ i: Letter,
+ j: Letter,
+ k: Letter,
+ l: Letter,
+ m: Letter,
+ n: Letter,
+ o: Letter,
+ p: Letter,
+ q: Letter,
+ r: Letter,
+ s: Letter,
+ t: Letter,
+ u: Letter,
+ v: Letter)
+ extends Alphabet
+
+@deriving(Show, Equal) case class Letter(name: String, phonetic: String)
+@deriving(Show, Equal) case class Country(name: String, language: Language)
+@deriving(Show, Equal) case class Language(name: String, code: String, alphabet: Latin)
+
+object Gen {
+ Show[Alphabet]
+ Equal[Alphabet]
+}