Skip to content
This repository was archived by the owner on Jan 20, 2023. It is now read-only.

Commit a243276

Browse files
committed
collection呼び出し系のベンチマークを追加
1 parent ce50585 commit a243276

File tree

5 files changed

+47
-0
lines changed

5 files changed

+47
-0
lines changed

src/jmh/kotlin/com/mapk/fastkfunction/CallConstructorBenchmark.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ open class CallConstructorBenchmark {
1717

1818
private val javaConstructor: Constructor<Constructor5> = function.javaConstructor!!
1919
private val fastKFunction: FastKFunction<Constructor5> = FastKFunction.of(function, null)
20+
private val collection: Collection<Int> = listOf(1, 2, 3, 4, 5)
2021
private val argumentBucket: ArgumentBucket = fastKFunction.generateBucket()
2122
.apply { (0 until 5).forEach { this[it] = it + 1 } }
2223

@@ -35,6 +36,9 @@ open class CallConstructorBenchmark {
3536
@Benchmark
3637
fun fastKFunctionCall(): Constructor5 = fastKFunction.call(1, 2, 3, 4, 5)
3738

39+
@Benchmark
40+
fun fastKFunctionCallByCollection(): Constructor5 = fastKFunction.callByCollection(collection)
41+
3842
@Benchmark
3943
fun fastKFunctionCallBy(): Constructor5 = fastKFunction.callBy(argumentBucket)
4044
}

src/jmh/kotlin/com/mapk/fastkfunction/CallInstanceMethodBenchmark.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ open class CallInstanceMethodBenchmark {
1919
private val javaMethod: Method = function.javaMethod!!
2020
private val fastKFunctionWithoutInstance: FastKFunction<Constructor5> = FastKFunction.of(function, null)
2121
private val fastKFunctionWithInstance: FastKFunction<Constructor5> = FastKFunction.of(function, instance)
22+
private val collection: Collection<Int> = listOf(1, 2, 3, 4, 5)
2223
private val argumentBucket: ArgumentBucket = fastKFunctionWithoutInstance.generateBucket()
2324
.apply { (0 until 5).forEach { this[it] = it + 1 } }
2425

@@ -37,12 +38,19 @@ open class CallInstanceMethodBenchmark {
3738
@Benchmark
3839
fun fastKFunctionWithoutInstanceCall(): Constructor5 = fastKFunctionWithoutInstance.call(1, 2, 3, 4, 5)
3940

41+
@Benchmark
42+
fun fastKFunctionWithoutInstanceCallByCollection(): Constructor5 = fastKFunctionWithoutInstance.call(collection)
43+
4044
@Benchmark
4145
fun fastKFunctionWithoutInstanceCallBy(): Constructor5 = fastKFunctionWithoutInstance.callBy(argumentBucket)
4246

4347
@Benchmark
4448
fun fastKFunctionWithInstanceCall(): Constructor5 = fastKFunctionWithInstance.call(1, 2, 3, 4, 5)
4549

50+
@Benchmark
51+
fun fastKFunctionWithInstanceCallByCollection(): Constructor5 =
52+
fastKFunctionWithInstance.callByCollection(collection)
53+
4654
@Benchmark
4755
fun fastKFunctionWithInstanceCallBy(): Constructor5 = fastKFunctionWithInstance.callBy(argumentBucket)
4856
}

src/jmh/kotlin/com/mapk/fastkfunction/CallObjectMethodBenchmark.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ open class CallObjectMethodBenchmark {
3636
private val fastKFunctionByReflectionWithInstance: FastKFunction<Constructor5> =
3737
FastKFunction.of(functionByReflection, objectInstance)
3838

39+
private val collection: Collection<Int> = listOf(1, 2, 3, 4, 5)
3940
private val argumentBucket: ArgumentBucket = fastKFunctionByMethodReferenceWithoutInstance.generateBucket()
4041
.apply { (0 until 5).forEach { this[it] = it + 1 } }
4142

@@ -61,6 +62,10 @@ open class CallObjectMethodBenchmark {
6162
fun fastKFunctionByMethodReferenceWithoutInstanceCall(): Constructor5 =
6263
fastKFunctionByMethodReferenceWithoutInstance.call(1, 2, 3, 4, 5)
6364

65+
@Benchmark
66+
fun fastKFunctionByMethodReferenceWithoutInstanceCallByCollection(): Constructor5 =
67+
fastKFunctionByMethodReferenceWithoutInstance.callByCollection(collection)
68+
6469
@Benchmark
6570
fun fastKFunctionByMethodReferenceWithoutInstanceCallBy(): Constructor5 =
6671
fastKFunctionByMethodReferenceWithoutInstance.callBy(argumentBucket)
@@ -69,6 +74,10 @@ open class CallObjectMethodBenchmark {
6974
fun fastKFunctionByMethodReferenceWithInstanceCall(): Constructor5 =
7075
fastKFunctionByMethodReferenceWithInstance.call(1, 2, 3, 4, 5)
7176

77+
@Benchmark
78+
fun fastKFunctionByMethodReferenceWithInstanceCallByCollection(): Constructor5 =
79+
fastKFunctionByMethodReferenceWithInstance.callByCollection(collection)
80+
7281
@Benchmark
7382
fun fastKFunctionByMethodReferenceWithInstanceCallBy(): Constructor5 =
7483
fastKFunctionByMethodReferenceWithInstance.callBy(argumentBucket)
@@ -77,6 +86,10 @@ open class CallObjectMethodBenchmark {
7786
fun fastKFunctionByReflectionWithoutInstanceCall(): Constructor5 =
7887
fastKFunctionByReflectionWithoutInstance.call(1, 2, 3, 4, 5)
7988

89+
@Benchmark
90+
fun fastKFunctionByReflectionWithoutInstanceCallByCollection(): Constructor5 =
91+
fastKFunctionByReflectionWithoutInstance.callByCollection(collection)
92+
8093
@Benchmark
8194
fun fastKFunctionByReflectionWithoutInstanceCallBy(): Constructor5 =
8295
fastKFunctionByReflectionWithoutInstance.callBy(argumentBucket)
@@ -85,6 +98,10 @@ open class CallObjectMethodBenchmark {
8598
fun fastKFunctionByReflectionWithInstanceCall(): Constructor5 =
8699
fastKFunctionByReflectionWithInstance.call(1, 2, 3, 4, 5)
87100

101+
@Benchmark
102+
fun fastKFunctionByReflectionWithInstanceCallByCollection(): Constructor5 =
103+
fastKFunctionByReflectionWithInstance.callByCollection(collection)
104+
88105
@Benchmark
89106
fun fastKFunctionByReflectionWithInstanceCallBy(): Constructor5 =
90107
fastKFunctionByReflectionWithInstance.callBy(argumentBucket)

src/jmh/kotlin/com/mapk/fastkfunction/CallTopLevelExtensionFunBenchmark.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ open class CallTopLevelExtensionFunBenchmark {
3030
private val fastKFunctionFromClass: FastKFunction<Constructor5> =
3131
FastKFunction.of(functionFromClass, receiverInstance)
3232

33+
private val collection: Collection<Int> = listOf(1, 2, 3, 4, 5)
3334
private val argumentBucket: ArgumentBucket = fastKFunctionByMethodReferenceWithoutInstance.generateBucket()
3435
.apply { (0 until 5).forEach { this[it] = it + 1 } }
3536

@@ -55,6 +56,10 @@ open class CallTopLevelExtensionFunBenchmark {
5556
fun fastKFunctionByMethodReferenceWithoutInstanceCall(): Constructor5 =
5657
fastKFunctionByMethodReferenceWithoutInstance.call(1, 2, 3, 4, 5)
5758

59+
@Benchmark
60+
fun fastKFunctionByMethodReferenceWithoutInstanceCallByCollection(): Constructor5 =
61+
fastKFunctionByMethodReferenceWithoutInstance.callByCollection(collection)
62+
5863
@Benchmark
5964
fun fastKFunctionByMethodReferenceWithoutInstanceCallBy(): Constructor5 =
6065
fastKFunctionByMethodReferenceWithoutInstance.callBy(argumentBucket)
@@ -63,6 +68,10 @@ open class CallTopLevelExtensionFunBenchmark {
6368
fun fastKFunctionByMethodReferenceWithInstanceCall(): Constructor5 =
6469
fastKFunctionByMethodReferenceWithInstance.call(1, 2, 3, 4, 5)
6570

71+
@Benchmark
72+
fun fastKFunctionByMethodReferenceWithInstanceCallByCollection(): Constructor5 =
73+
fastKFunctionByMethodReferenceWithInstance.callByCollection(collection)
74+
6675
@Benchmark
6776
fun fastKFunctionByMethodReferenceWithInstanceCallBy(): Constructor5 =
6877
fastKFunctionByMethodReferenceWithInstance.callBy(argumentBucket)
@@ -71,6 +80,10 @@ open class CallTopLevelExtensionFunBenchmark {
7180
fun fastKFunctionFromClassCall(): Constructor5 =
7281
fastKFunctionFromClass.call(1, 2, 3, 4, 5)
7382

83+
@Benchmark
84+
fun fastKFunctionFromClassCallByCollection(): Constructor5 =
85+
fastKFunctionFromClass.callByCollection(collection)
86+
7487
@Benchmark
7588
fun fastKFunctionFromClassCallBy(): Constructor5 =
7689
fastKFunctionFromClass.callBy(argumentBucket)

src/jmh/kotlin/com/mapk/fastkfunction/CallTopLevelFunBenchmark.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ open class CallTopLevelFunBenchmark {
1818

1919
private val javaMethod: Method = function.javaMethod!!
2020
private val fastKFunction: FastKFunction<Constructor5> = FastKFunction.of(function, null)
21+
private val collection: Collection<Int> = listOf(1, 2, 3, 4, 5)
2122
private val argumentBucket: ArgumentBucket = fastKFunction.generateBucket()
2223
.apply { (0 until 5).forEach { this[it] = it + 1 } }
2324

@@ -36,6 +37,10 @@ open class CallTopLevelFunBenchmark {
3637
@Benchmark
3738
fun fastKFunctionCall(): Constructor5 = fastKFunction.call(1, 2, 3, 4, 5)
3839

40+
@Benchmark
41+
fun fastKFunctionCallByCollection(): Constructor5 =
42+
fastKFunction.callByCollection(collection)
43+
3944
@Benchmark
4045
fun fastKFunctionCallBy(): Constructor5 = fastKFunction.callBy(argumentBucket)
4146
}

0 commit comments

Comments
 (0)