File tree 4 files changed +103
-2
lines changed
benchmark/jvm/src/test/scala/benchmark
4 files changed +103
-2
lines changed Original file line number Diff line number Diff line change
1
+ package benchmark
2
+
3
+ object Constants {
4
+ @ inline def innerLoopConstant : Int = 10000
5
+ }
Original file line number Diff line number Diff line change @@ -25,8 +25,9 @@ object Generators {
25
25
def jNumber : Gen [ast.JNumber ] =
26
26
for {
27
27
size <- Gen .range(" seed" )(300000 , 1500000 , 300000 )
28
+ size2 <- Gen .range(" seed" )(300000 , 1500000 , 300000 )
28
29
} yield {
29
- ast.JNumber (size)
30
+ ast.JNumber (s " $ size. $size2 " ).get
30
31
}
31
32
32
33
def jArray : Gen [ast.JArray ] =
Original file line number Diff line number Diff line change @@ -7,7 +7,56 @@ object JNumber extends Bench.ForkedTime {
7
7
performance of " JNumber" in {
8
8
measure method " toFast" in {
9
9
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
+ }
11
60
}
12
61
}
13
62
}
Original file line number Diff line number Diff line change 1
1
package benchmark .unsafe
2
2
3
+ import benchmark .Constants
3
4
import org .scalameter .Bench
4
5
5
6
object JNumber extends Bench .ForkedTime {
@@ -10,5 +11,50 @@ object JNumber extends Bench.ForkedTime {
10
11
jNumber.toStandard
11
12
}
12
13
}
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
+ }
13
59
}
14
60
}
You can’t perform that action at this time.
0 commit comments