From 190749b73915a4e71af17166e748b4631af7acd8 Mon Sep 17 00:00:00 2001 From: Daniil Date: Thu, 26 Jul 2018 11:09:30 +0700 Subject: [PATCH] Benchmark Async vs Advanced event loops --- .../core/events/AsyncEventLoopBenchmark.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 event-loop/src/test/java/ru/core/events/AsyncEventLoopBenchmark.java diff --git a/event-loop/src/test/java/ru/core/events/AsyncEventLoopBenchmark.java b/event-loop/src/test/java/ru/core/events/AsyncEventLoopBenchmark.java new file mode 100644 index 0000000..50b1d9f --- /dev/null +++ b/event-loop/src/test/java/ru/core/events/AsyncEventLoopBenchmark.java @@ -0,0 +1,52 @@ +package ru.core.events; + +import com.carrotsearch.junitbenchmarks.AbstractBenchmark; +import mc.core.events.LoginEvent; +import mc.core.events.async.AdvancedEventLoop; +import mc.core.events.async.AsyncEventLoop; +import org.junit.BeforeClass; +import org.junit.Test; +import ru.core.events.handlers.AsyncEventHandler; + +public class AsyncEventLoopBenchmark extends AbstractBenchmark { + private static final int ITERATIONS = 50_000; + private static AsyncEventLoop asyncEventLoop; + private static AdvancedEventLoop advancedEventLoop; + private static LoginEvent testEvent; + + @BeforeClass + public static void setup() { + asyncEventLoop = new AsyncEventLoop(); + asyncEventLoop.addEventHandler(new AsyncEventHandler()); + advancedEventLoop = new AdvancedEventLoop(); + advancedEventLoop.addEventHandler(new AsyncEventHandler()); + testEvent = new LoginEvent(null); + testEvent.setDenyReason("none"); + } + + @Test + public void measure() { + for (int i = 0; i < 10000; i++) { + asyncEventLoop.callEvent(testEvent); + } + } + +/* @Test + @BenchmarkOptions(warmupRounds = 5, benchmarkRounds = 15) + public void async() { + while (true) + asyncEventLoop.callEvent(testEvent); + *//*for (int i = 0; i < ITERATIONS; i++) { + asyncEventLoop.callEvent(testEvent); + + }*//* + }*/ +/* + @Test + @BenchmarkOptions(warmupRounds = 5, benchmarkRounds = 15) + public void advanced() { + for (int i = 0; i < ITERATIONS; i++) { + advancedEventLoop.callEvent(testEvent); + } + }*/ +}