marcinmoskala
12/16/2024, 12:23 PMStefan Oltmann
12/16/2024, 12:36 PMmarcinmoskala
12/16/2024, 12:40 PMStefan Oltmann
12/16/2024, 12:44 PMRobert Jaros
12/16/2024, 12:57 PMStefan Oltmann
12/16/2024, 1:00 PMephemient
12/16/2024, 2:40 PMephemient
12/16/2024, 3:00 PM@Benchmark
fun javaMethodHandles(bh: Blackhole, counter: Counter) {
val increment = MethodHandles.lookup().findSpecial(Counter::class.java, "increment", MethodType.methodType(Int::class.java), Counter::class.java)
val decrement = MethodHandles.lookup().findSpecial(Counter::class.java, "decrement", MethodType.methodType(Int::class.java), Counter::class.java)
val get = MethodHandles.lookup().findSpecial(Counter::class.java, "get", MethodType.methodType(Int::class.java), Counter::class.java)
repeat(1_000_000) {
increment.invokeExact(counter) as Int
decrement.invokeExact(counter) as Int
increment.invokeExact(counter) as Int
get.invokeExact(counter) as Int
}
bh.consume(counter)
}
which is about twice as fast as Java reflection, within about 50% of a regular method callephemient
12/16/2024, 3:03 PMDaniel Pitts
12/16/2024, 3:35 PMephemient
12/16/2024, 3:42 PMStefan Oltmann
12/16/2024, 3:45 PMPHondogo
12/16/2024, 10:11 PMStefan Oltmann
12/16/2024, 10:28 PMephemient
12/16/2024, 11:19 PMephemient
12/16/2024, 11:21 PMStefan Oltmann
12/16/2024, 11:34 PMMichael Paus
12/17/2024, 9:10 AM