Skip to content

Commit f73d435

Browse files
committed
#37 Added benchmarks
1 parent f755a21 commit f73d435

File tree

4 files changed

+103
-2
lines changed

4 files changed

+103
-2
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package benchmark
2+
3+
object Constants {
4+
@inline def innerLoopConstant: Int = 10000
5+
}

benchmark/jvm/src/test/scala/benchmark/Generators.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ object Generators {
2525
def jNumber: Gen[ast.JNumber] =
2626
for {
2727
size <- Gen.range("seed")(300000, 1500000, 300000)
28+
size2 <- Gen.range("seed")(300000, 1500000, 300000)
2829
} yield {
29-
ast.JNumber(size)
30+
ast.JNumber(s"$size.$size2").get
3031
}
3132

3233
def jArray: Gen[ast.JArray] =

benchmark/jvm/src/test/scala/benchmark/JNumber.scala

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,56 @@ object JNumber extends Bench.ForkedTime {
77
performance of "JNumber" in {
88
measure method "toFast" in {
99
using(Generators.jNumber) in { jNumber =>
10-
jNumber.toUnsafe
10+
var i = 0
11+
while (i < Constants.innerLoopConstant) {
12+
jNumber.toUnsafe
13+
i += 1
14+
}
15+
}
16+
}
17+
measure method "toInt" in {
18+
using(Generators.jNumber) in { jNumber =>
19+
var i = 0
20+
while (i < Constants.innerLoopConstant) {
21+
jNumber.toInt
22+
i += 1
23+
}
24+
}
25+
}
26+
measure method "toLong" in {
27+
using(Generators.jNumber) in { jNumber =>
28+
var i = 0
29+
while (i < Constants.innerLoopConstant) {
30+
jNumber.toLong
31+
i += 1
32+
}
33+
}
34+
}
35+
measure method "toBigInt" in {
36+
using(Generators.jNumber) in { jNumber =>
37+
var i = 0
38+
while (i < Constants.innerLoopConstant) {
39+
jNumber.toBigInt
40+
i += 1
41+
}
42+
}
43+
}
44+
measure method "toBigDecimal" in {
45+
using(Generators.jNumber) in { jNumber =>
46+
var i = 0
47+
while (i < Constants.innerLoopConstant) {
48+
jNumber.toBigDecimal
49+
i += 1
50+
}
51+
}
52+
}
53+
measure method "toDouble" in {
54+
using(Generators.jNumber) in { jNumber =>
55+
var i = 0
56+
while (i < Constants.innerLoopConstant) {
57+
jNumber.toDouble
58+
i += 1
59+
}
1160
}
1261
}
1362
}

benchmark/jvm/src/test/scala/benchmark/unsafe/JNumber.scala

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package benchmark.unsafe
22

3+
import benchmark.Constants
34
import org.scalameter.Bench
45

56
object JNumber extends Bench.ForkedTime {
@@ -10,5 +11,50 @@ object JNumber extends Bench.ForkedTime {
1011
jNumber.toStandard
1112
}
1213
}
14+
measure method "toInt" in {
15+
using(Generators.jNumber) in { jNumber =>
16+
var i = 0
17+
while (i < Constants.innerLoopConstant) {
18+
jNumber.toInt
19+
i += 1
20+
}
21+
}
22+
}
23+
measure method "toLong" in {
24+
using(Generators.jNumber) in { jNumber =>
25+
var i = 0
26+
while (i < Constants.innerLoopConstant) {
27+
jNumber.toLong
28+
i += 1
29+
}
30+
}
31+
}
32+
measure method "toBigInt" in {
33+
using(Generators.jNumber) in { jNumber =>
34+
var i = 0
35+
while (i < Constants.innerLoopConstant) {
36+
jNumber.toBigInt
37+
i += 1
38+
}
39+
}
40+
}
41+
measure method "toBigDecimal" in {
42+
using(Generators.jNumber) in { jNumber =>
43+
var i = 0
44+
while (i < Constants.innerLoopConstant) {
45+
jNumber.toBigDecimal
46+
i += 1
47+
}
48+
}
49+
}
50+
measure method "toDouble" in {
51+
using(Generators.jNumber) in { jNumber =>
52+
var i = 0
53+
while (i < Constants.innerLoopConstant) {
54+
jNumber.toDouble
55+
i += 1
56+
}
57+
}
58+
}
1359
}
1460
}

0 commit comments

Comments
 (0)