EventBus
EventBus copied to clipboard
Provide explicit-class alternative for all addListener methods
Adds variants with explicit event class to all addListener and addGenericListener methods that didn't already have them. Marks all the overloads without an event class parameter deprecated. Updates all tests to prefer the new overloads.
I finally managed to run JMH on my computer (Windows 10).
Setup:
cd /D C:\
mklink /d forgedev F:\Modding\Forge
cd forgedev
cd eventbus
Java 8:
Execution:
set JAVA_HOME=c:\java\jdk-8u282-b08
gradlew jmh
Results:
Benchmark Mode Cnt Score Error Units
EventBusBenchmark.testClassLambda avgt 9 41.839 ± 5.051 ns/op
EventBusBenchmark.testClassLambda:·stack avgt NaN ---
EventBusBenchmark.testDynamic avgt 9 38.431 ± 0.933 ns/op
EventBusBenchmark.testDynamic:·stack avgt NaN ---
EventBusBenchmark.testLambda avgt 9 38.590 ± 4.967 ns/op
EventBusBenchmark.testLambda:·stack avgt NaN ---
EventBusBenchmark.testStatic avgt 9 34.296 ± 0.097 ns/op
EventBusBenchmark.testStatic:·stack avgt NaN ---
Java 11:
Execution:
set JAVA_HOME="c:\java\jdk-11.0.10+9"
gradlew jmh
Results:
Benchmark Mode Cnt Score Error Units
EventBusBenchmark.testClassLambda avgt 9 39.551 ± 0.417 ns/op
EventBusBenchmark.testClassLambda:·stack avgt NaN ---
EventBusBenchmark.testDynamic avgt 9 41.563 ± 1.988 ns/op
EventBusBenchmark.testDynamic:·stack avgt NaN ---
EventBusBenchmark.testLambda avgt 9 39.230 ± 0.603 ns/op
EventBusBenchmark.testLambda:·stack avgt NaN ---
EventBusBenchmark.testStatic avgt 9 38.259 ± 0.856 ns/op
EventBusBenchmark.testStatic:·stack avgt NaN ---
As expected, removing typetools makes no significant difference in performance, since all it's used for is resolving the generic type.