EventBus icon indicating copy to clipboard operation
EventBus copied to clipboard

Provide explicit-class alternative for all addListener methods

Open gigaherz opened this issue 4 years ago • 1 comments

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.

gigaherz avatar Apr 09 '21 00:04 gigaherz

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.

gigaherz avatar Apr 13 '21 13:04 gigaherz