Added benchmark with big vtables [KT-40652]
This commit is contained in:
committed by
LepilkinaElena
parent
b57b81afa8
commit
cdd8ffa091
@@ -209,7 +209,8 @@ class RingLauncher : Launcher() {
|
||||
"Casts.classCast" to BenchmarkEntryWithInit.create(::CastsBenchmark, { classCast() }),
|
||||
"Casts.interfaceCast" to BenchmarkEntryWithInit.create(::CastsBenchmark, { interfaceCast() }),
|
||||
"LocalObjects.localArray" to BenchmarkEntryWithInit.create(::LocalObjectsBenchmark, { localArray() }),
|
||||
"LinkedListWithAtomicsBenchmark" to BenchmarkEntryWithInit.create(::LinkedListWithAtomicsBenchmark, { ensureNext() })
|
||||
"LinkedListWithAtomicsBenchmark" to BenchmarkEntryWithInit.create(::LinkedListWithAtomicsBenchmark, { ensureNext() }),
|
||||
"Inheritance.baseCalls" to BenchmarkEntryWithInit.create(::InheritanceBenchmark, { baseCalls() })
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,508 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the LICENSE file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.ring
|
||||
|
||||
private const val RUNS = 1_000_000
|
||||
|
||||
open class InheritanceBenchmark {
|
||||
|
||||
open class A() {
|
||||
fun a(): Int = 0
|
||||
|
||||
fun a1(): Int = 1
|
||||
fun a2(): Int = 2
|
||||
fun a3(): Int = 3
|
||||
fun a4(): Int = 4
|
||||
fun a5(): Int = 5
|
||||
fun a6(): Int = 6
|
||||
fun a7(): Int = 7
|
||||
fun a8(): Int = 8
|
||||
open fun a9(): Int = 9
|
||||
open fun a10(): Int = 10
|
||||
open fun a11(): Int = 11
|
||||
open fun a12(): Int = 12
|
||||
open fun a13(): Int = 13
|
||||
open fun a14(): Int = 14
|
||||
open fun a15(): Int = 15
|
||||
open fun a16(): Int = 16
|
||||
open fun a17(): Int = 17
|
||||
open fun a18(): Int = 18
|
||||
open fun a19(): Int = 19
|
||||
open fun a20(): Int = 20
|
||||
open fun a21(): Int = 21
|
||||
open fun a22(): Int = 22
|
||||
open fun a23(): Int = 23
|
||||
open fun a24(): Int = 24
|
||||
open fun a25(): Int = 25
|
||||
open fun a26(): Int = 26
|
||||
open fun a27(): Int = 27
|
||||
open fun a28(): Int = 28
|
||||
open fun a29(): Int = 29
|
||||
open fun a30(): Int = 30
|
||||
open fun a31(): Int = 31
|
||||
open fun a32(): Int = 32
|
||||
open fun a33(): Int = 33
|
||||
open fun a34(): Int = 34
|
||||
open fun a35(): Int = 35
|
||||
open fun a36(): Int = 36
|
||||
open fun a37(): Int = 37
|
||||
open fun a38(): Int = 38
|
||||
open fun a39(): Int = 39
|
||||
open fun a40(): Int = 40
|
||||
open fun a41(): Int = 41
|
||||
open fun a42(): Int = 42
|
||||
open fun a43(): Int = 43
|
||||
open fun a44(): Int = 44
|
||||
open fun a45(): Int = 45
|
||||
open fun a46(): Int = 46
|
||||
open fun a47(): Int = 47
|
||||
open fun a48(): Int = 48
|
||||
open fun a49(): Int = 49
|
||||
open fun a50(): Int = 50
|
||||
open fun a51(): Int = 51
|
||||
open fun a52(): Int = 52
|
||||
open fun a53(): Int = 53
|
||||
open fun a54(): Int = 54
|
||||
open fun a55(): Int = 55
|
||||
open fun a56(): Int = 56
|
||||
open fun a57(): Int = 57
|
||||
open fun a58(): Int = 58
|
||||
open fun a59(): Int = 59
|
||||
open fun a60(): Int = 60
|
||||
open fun a61(): Int = 61
|
||||
open fun a62(): Int = 62
|
||||
open fun a63(): Int = 63
|
||||
open fun a64(): Int = 64
|
||||
open fun a65(): Int = 65
|
||||
open fun a66(): Int = 66
|
||||
open fun a67(): Int = 67
|
||||
open fun a68(): Int = 68
|
||||
open fun a69(): Int = 69
|
||||
open fun a70(): Int = 70
|
||||
open fun a71(): Int = 71
|
||||
open fun a72(): Int = 72
|
||||
open fun a73(): Int = 73
|
||||
open fun a74(): Int = 74
|
||||
open fun a75(): Int = 75
|
||||
open fun a76(): Int = 76
|
||||
open fun a77(): Int = 77
|
||||
open fun a78(): Int = 78
|
||||
open fun a79(): Int = 79
|
||||
open fun a80(): Int = 80
|
||||
open fun a81(): Int = 81
|
||||
open fun a82(): Int = 82
|
||||
open fun a83(): Int = 83
|
||||
open fun a84(): Int = 84
|
||||
open fun a85(): Int = 85
|
||||
open fun a86(): Int = 86
|
||||
open fun a87(): Int = 87
|
||||
open fun a88(): Int = 88
|
||||
open fun a89(): Int = 89
|
||||
open fun a90(): Int = 90
|
||||
open fun a91(): Int = 91
|
||||
open fun a92(): Int = 92
|
||||
open fun a93(): Int = 93
|
||||
open fun a94(): Int = 94
|
||||
open fun a95(): Int = 95
|
||||
open fun a96(): Int = 96
|
||||
open fun a97(): Int = 97
|
||||
open fun a98(): Int = 98
|
||||
open fun a99(): Int = 99
|
||||
|
||||
}
|
||||
|
||||
open class B() : A() {
|
||||
override fun a10(): Int = 0
|
||||
|
||||
fun b1(): Int = 1
|
||||
fun b2(): Int = 2
|
||||
fun b3(): Int = 3
|
||||
fun b4(): Int = 4
|
||||
fun b5(): Int = 5
|
||||
open fun b6(): Int = 6
|
||||
open fun b7(): Int = 7
|
||||
open fun b8(): Int = 8
|
||||
open fun b9(): Int = 9
|
||||
open fun b10(): Int = 10
|
||||
open fun b11(): Int = 11
|
||||
open fun b12(): Int = 12
|
||||
open fun b13(): Int = 13
|
||||
open fun b14(): Int = 14
|
||||
open fun b15(): Int = 15
|
||||
open fun b16(): Int = 16
|
||||
open fun b17(): Int = 17
|
||||
open fun b18(): Int = 18
|
||||
open fun b19(): Int = 19
|
||||
open fun b20(): Int = 20
|
||||
open fun b21(): Int = 21
|
||||
open fun b22(): Int = 22
|
||||
open fun b23(): Int = 23
|
||||
open fun b24(): Int = 24
|
||||
open fun b25(): Int = 25
|
||||
open fun b26(): Int = 26
|
||||
open fun b27(): Int = 27
|
||||
open fun b28(): Int = 28
|
||||
open fun b29(): Int = 29
|
||||
open fun b30(): Int = 30
|
||||
open fun b31(): Int = 31
|
||||
open fun b32(): Int = 32
|
||||
open fun b33(): Int = 33
|
||||
open fun b34(): Int = 34
|
||||
open fun b35(): Int = 35
|
||||
open fun b36(): Int = 36
|
||||
open fun b37(): Int = 37
|
||||
open fun b38(): Int = 38
|
||||
open fun b39(): Int = 39
|
||||
open fun b40(): Int = 40
|
||||
open fun b41(): Int = 41
|
||||
open fun b42(): Int = 42
|
||||
open fun b43(): Int = 43
|
||||
open fun b44(): Int = 44
|
||||
open fun b45(): Int = 45
|
||||
open fun b46(): Int = 46
|
||||
open fun b47(): Int = 47
|
||||
open fun b48(): Int = 48
|
||||
open fun b49(): Int = 49
|
||||
open fun b50(): Int = 50
|
||||
open fun b51(): Int = 51
|
||||
open fun b52(): Int = 52
|
||||
open fun b53(): Int = 53
|
||||
open fun b54(): Int = 54
|
||||
open fun b55(): Int = 55
|
||||
open fun b56(): Int = 56
|
||||
open fun b57(): Int = 57
|
||||
open fun b58(): Int = 58
|
||||
open fun b59(): Int = 59
|
||||
open fun b60(): Int = 60
|
||||
open fun b61(): Int = 61
|
||||
open fun b62(): Int = 62
|
||||
open fun b63(): Int = 63
|
||||
open fun b64(): Int = 64
|
||||
open fun b65(): Int = 65
|
||||
open fun b66(): Int = 66
|
||||
open fun b67(): Int = 67
|
||||
open fun b68(): Int = 68
|
||||
open fun b69(): Int = 69
|
||||
open fun b70(): Int = 70
|
||||
open fun b71(): Int = 71
|
||||
open fun b72(): Int = 72
|
||||
open fun b73(): Int = 73
|
||||
open fun b74(): Int = 74
|
||||
open fun b75(): Int = 75
|
||||
open fun b76(): Int = 76
|
||||
open fun b77(): Int = 77
|
||||
open fun b78(): Int = 78
|
||||
open fun b79(): Int = 79
|
||||
open fun b80(): Int = 80
|
||||
open fun b81(): Int = 81
|
||||
open fun b82(): Int = 82
|
||||
open fun b83(): Int = 83
|
||||
open fun b84(): Int = 84
|
||||
open fun b85(): Int = 85
|
||||
open fun b86(): Int = 86
|
||||
open fun b87(): Int = 87
|
||||
open fun b88(): Int = 88
|
||||
open fun b89(): Int = 89
|
||||
open fun b90(): Int = 90
|
||||
open fun b91(): Int = 91
|
||||
open fun b92(): Int = 92
|
||||
open fun b93(): Int = 93
|
||||
open fun b94(): Int = 94
|
||||
open fun b95(): Int = 95
|
||||
open fun b96(): Int = 96
|
||||
open fun b97(): Int = 97
|
||||
open fun b98(): Int = 98
|
||||
open fun b99(): Int = 99
|
||||
}
|
||||
|
||||
open class C() : B() {
|
||||
fun c(): Int = 0
|
||||
override fun a10(): Int = 100
|
||||
|
||||
fun c1(): Int = 1
|
||||
fun c2(): Int = 2
|
||||
fun c3(): Int = 3
|
||||
fun c4(): Int = 4
|
||||
fun c5(): Int = 5
|
||||
fun c6(): Int = 6
|
||||
fun c7(): Int = 7
|
||||
fun c8(): Int = 8
|
||||
open fun c9(): Int = 9
|
||||
open fun c10(): Int = 10
|
||||
open fun c11(): Int = 11
|
||||
open fun c12(): Int = 12
|
||||
open fun c13(): Int = 13
|
||||
open fun c14(): Int = 14
|
||||
open fun c15(): Int = 15
|
||||
open fun c16(): Int = 16
|
||||
open fun c17(): Int = 17
|
||||
open fun c18(): Int = 18
|
||||
open fun c19(): Int = 19
|
||||
open fun c20(): Int = 20
|
||||
open fun c21(): Int = 21
|
||||
open fun c22(): Int = 22
|
||||
open fun c23(): Int = 23
|
||||
open fun c24(): Int = 24
|
||||
open fun c25(): Int = 25
|
||||
open fun c26(): Int = 26
|
||||
open fun c27(): Int = 27
|
||||
open fun c28(): Int = 28
|
||||
open fun c29(): Int = 29
|
||||
open fun c30(): Int = 30
|
||||
open fun c31(): Int = 31
|
||||
open fun c32(): Int = 32
|
||||
open fun c33(): Int = 33
|
||||
open fun c34(): Int = 34
|
||||
open fun c35(): Int = 35
|
||||
open fun c36(): Int = 36
|
||||
open fun c37(): Int = 37
|
||||
open fun c38(): Int = 38
|
||||
open fun c39(): Int = 39
|
||||
open fun c40(): Int = 40
|
||||
open fun c41(): Int = 41
|
||||
open fun c42(): Int = 42
|
||||
open fun c43(): Int = 43
|
||||
open fun c44(): Int = 44
|
||||
open fun c45(): Int = 45
|
||||
open fun c46(): Int = 46
|
||||
open fun c47(): Int = 47
|
||||
open fun c48(): Int = 48
|
||||
open fun c49(): Int = 49
|
||||
open fun c50(): Int = 50
|
||||
open fun c51(): Int = 51
|
||||
open fun c52(): Int = 52
|
||||
open fun c53(): Int = 53
|
||||
open fun c54(): Int = 54
|
||||
open fun c55(): Int = 55
|
||||
open fun c56(): Int = 56
|
||||
open fun c57(): Int = 57
|
||||
open fun c58(): Int = 58
|
||||
open fun c59(): Int = 59
|
||||
open fun c60(): Int = 60
|
||||
open fun c61(): Int = 61
|
||||
open fun c62(): Int = 62
|
||||
open fun c63(): Int = 63
|
||||
open fun c64(): Int = 64
|
||||
open fun c65(): Int = 65
|
||||
open fun c66(): Int = 66
|
||||
open fun c67(): Int = 67
|
||||
open fun c68(): Int = 68
|
||||
open fun c69(): Int = 69
|
||||
open fun c70(): Int = 70
|
||||
open fun c71(): Int = 71
|
||||
open fun c72(): Int = 72
|
||||
open fun c73(): Int = 73
|
||||
open fun c74(): Int = 74
|
||||
open fun c75(): Int = 75
|
||||
open fun c76(): Int = 76
|
||||
open fun c77(): Int = 77
|
||||
open fun c78(): Int = 78
|
||||
open fun c79(): Int = 79
|
||||
open fun c80(): Int = 80
|
||||
open fun c81(): Int = 81
|
||||
open fun c82(): Int = 82
|
||||
open fun c83(): Int = 83
|
||||
open fun c84(): Int = 84
|
||||
open fun c85(): Int = 85
|
||||
open fun c86(): Int = 86
|
||||
open fun c87(): Int = 87
|
||||
open fun c88(): Int = 88
|
||||
open fun c89(): Int = 89
|
||||
open fun c90(): Int = 90
|
||||
open fun c91(): Int = 91
|
||||
open fun c92(): Int = 92
|
||||
open fun c93(): Int = 93
|
||||
open fun c94(): Int = 94
|
||||
open fun c95(): Int = 95
|
||||
open fun c96(): Int = 96
|
||||
open fun c97(): Int = 97
|
||||
open fun c98(): Int = 98
|
||||
open fun c99(): Int = 99
|
||||
}
|
||||
|
||||
open class D() : C() {
|
||||
override fun a10(): Int = 1000
|
||||
fun d(): Int = 0
|
||||
|
||||
fun d1(): Int = 1
|
||||
fun d2(): Int = 2
|
||||
fun d3(): Int = 3
|
||||
fun d4(): Int = 4
|
||||
fun d5(): Int = 5
|
||||
fun d6(): Int = 6
|
||||
fun d7(): Int = 7
|
||||
fun d8(): Int = 8
|
||||
open fun d9(): Int = 9
|
||||
open fun d10(): Int = 10
|
||||
open fun d11(): Int = 11
|
||||
open fun d12(): Int = 12
|
||||
open fun d13(): Int = 13
|
||||
open fun d14(): Int = 14
|
||||
open fun d15(): Int = 15
|
||||
open fun d16(): Int = 16
|
||||
open fun d17(): Int = 17
|
||||
open fun d18(): Int = 18
|
||||
open fun d19(): Int = 19
|
||||
open fun d20(): Int = 20
|
||||
open fun d21(): Int = 21
|
||||
open fun d22(): Int = 22
|
||||
open fun d23(): Int = 23
|
||||
open fun d24(): Int = 24
|
||||
open fun d25(): Int = 25
|
||||
open fun d26(): Int = 26
|
||||
open fun d27(): Int = 27
|
||||
open fun d28(): Int = 28
|
||||
open fun d29(): Int = 29
|
||||
open fun d30(): Int = 30
|
||||
open fun d31(): Int = 31
|
||||
open fun d32(): Int = 32
|
||||
open fun d33(): Int = 33
|
||||
open fun d34(): Int = 34
|
||||
open fun d35(): Int = 35
|
||||
open fun d36(): Int = 36
|
||||
open fun d37(): Int = 37
|
||||
open fun d38(): Int = 38
|
||||
open fun d39(): Int = 39
|
||||
open fun d40(): Int = 40
|
||||
open fun d41(): Int = 41
|
||||
open fun d42(): Int = 42
|
||||
open fun d43(): Int = 43
|
||||
open fun d44(): Int = 44
|
||||
open fun d45(): Int = 45
|
||||
open fun d46(): Int = 46
|
||||
open fun d47(): Int = 47
|
||||
open fun d48(): Int = 48
|
||||
open fun d49(): Int = 49
|
||||
open fun d50(): Int = 50
|
||||
open fun d51(): Int = 51
|
||||
open fun d52(): Int = 52
|
||||
open fun d53(): Int = 53
|
||||
open fun d54(): Int = 54
|
||||
open fun d55(): Int = 55
|
||||
open fun d56(): Int = 56
|
||||
open fun d57(): Int = 57
|
||||
open fun d58(): Int = 58
|
||||
open fun d59(): Int = 59
|
||||
open fun d60(): Int = 60
|
||||
open fun d61(): Int = 61
|
||||
open fun d62(): Int = 62
|
||||
open fun d63(): Int = 63
|
||||
open fun d64(): Int = 64
|
||||
open fun d65(): Int = 65
|
||||
open fun d66(): Int = 66
|
||||
open fun d67(): Int = 67
|
||||
open fun d68(): Int = 68
|
||||
open fun d69(): Int = 69
|
||||
open fun d70(): Int = 70
|
||||
open fun d71(): Int = 71
|
||||
open fun d72(): Int = 72
|
||||
open fun d73(): Int = 73
|
||||
open fun d74(): Int = 74
|
||||
open fun d75(): Int = 75
|
||||
open fun d76(): Int = 76
|
||||
open fun d77(): Int = 77
|
||||
open fun d78(): Int = 78
|
||||
open fun d79(): Int = 79
|
||||
open fun d80(): Int = 80
|
||||
open fun d81(): Int = 81
|
||||
open fun d82(): Int = 82
|
||||
open fun d83(): Int = 83
|
||||
open fun d84(): Int = 84
|
||||
open fun d85(): Int = 85
|
||||
open fun d86(): Int = 86
|
||||
open fun d87(): Int = 87
|
||||
open fun d88(): Int = 88
|
||||
open fun d89(): Int = 89
|
||||
open fun d90(): Int = 90
|
||||
open fun d91(): Int = 91
|
||||
open fun d92(): Int = 92
|
||||
open fun d93(): Int = 93
|
||||
open fun d94(): Int = 94
|
||||
open fun d95(): Int = 95
|
||||
open fun d96(): Int = 96
|
||||
open fun d97(): Int = 97
|
||||
open fun d98(): Int = 98
|
||||
open fun d99(): Int = 99
|
||||
}
|
||||
|
||||
open class E() : D() {
|
||||
override fun a10(): Int = 200
|
||||
open fun e1(): Int = 1
|
||||
open fun e2(): Int = 2
|
||||
open fun e3(): Int = 3
|
||||
open fun e4(): Int = 4
|
||||
open fun e5(): Int = 5
|
||||
open fun e6(): Int = 6
|
||||
open fun e7(): Int = 7
|
||||
open fun e8(): Int = 8
|
||||
open fun e9(): Int = 9
|
||||
open fun e10(): Int = 10
|
||||
open fun e11(): Int = 11
|
||||
open fun e12(): Int = 12
|
||||
open fun e13(): Int = 13
|
||||
open fun e14(): Int = 14
|
||||
open fun e15(): Int = 15
|
||||
}
|
||||
|
||||
open class F() : E() {
|
||||
open fun f1(): Int = 1
|
||||
open fun f2(): Int = 2
|
||||
open fun f3(): Int = 3
|
||||
open fun f4(): Int = 4
|
||||
open fun f5(): Int = 5
|
||||
open fun f6(): Int = 6
|
||||
open fun f7(): Int = 7
|
||||
open fun f8(): Int = 8
|
||||
open fun f9(): Int = 9
|
||||
open fun f10(): Int = 10
|
||||
open fun f11(): Int = 11
|
||||
open fun f12(): Int = 12
|
||||
open fun f13(): Int = 13
|
||||
open fun f14(): Int = 14
|
||||
open fun f15(): Int = 15
|
||||
}
|
||||
|
||||
open class G() : F() {
|
||||
open fun g1(): Int = 1
|
||||
open fun g2(): Int = 2
|
||||
open fun g3(): Int = 3
|
||||
open fun g4(): Int = 4
|
||||
open fun g5(): Int = 5
|
||||
open fun g6(): Int = 6
|
||||
open fun g7(): Int = 7
|
||||
open fun g8(): Int = 8
|
||||
open fun g9(): Int = 9
|
||||
open fun g10(): Int = 10
|
||||
open fun g11(): Int = 11
|
||||
open fun g12(): Int = 12
|
||||
open fun g13(): Int = 13
|
||||
open fun g14(): Int = 14
|
||||
open fun g15(): Int = 15
|
||||
}
|
||||
|
||||
val a = A()
|
||||
val b = B()
|
||||
val c = C()
|
||||
val d = D()
|
||||
val e = E()
|
||||
val f = F()
|
||||
val g = G()
|
||||
|
||||
fun baseCalls(): Int {
|
||||
var x = 0
|
||||
for (i in 0 until RUNS) {
|
||||
x += a.a()
|
||||
x += b.a10()
|
||||
x += c.b20()
|
||||
x += d.c20()
|
||||
x += e.d10()
|
||||
x += f.e10()
|
||||
x += g.f10()
|
||||
x += g.g3()
|
||||
}
|
||||
return x
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user