Archived
0

Tweaked executor service settings

This commit is contained in:
Daniil
2018-07-26 19:49:00 +07:00
parent b30c4ac97b
commit 4332146556
2 changed files with 9 additions and 7 deletions

View File

@@ -6,16 +6,14 @@ import mc.core.events.Event;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.List; import java.util.List;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Slf4j @Slf4j
public class AsyncEventLoop extends AdvancedEventLoop { public class AsyncEventLoop extends AdvancedEventLoop {
private static final double EMAPeriod = (2D / (50D + 1D)); private static final double emaPeriod = (2D / (50D + 1D));
private final ExecutorService preEventExecutor = new ThreadPoolExecutor(2, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<>());
@Getter @Getter
private double avgOverhead = 0; private double avgOverhead = 0;
private ExecutorService preEventExecutor = Executors.newSingleThreadExecutor();
@Override @Override
public void callEvent(Event event) { public void callEvent(Event event) {
@@ -77,7 +75,7 @@ public class AsyncEventLoop extends AdvancedEventLoop {
if (avgOverhead == 0) if (avgOverhead == 0)
avgOverhead = overhead; avgOverhead = overhead;
else else
avgOverhead = (overhead - avgOverhead) * EMAPeriod + avgOverhead; avgOverhead = (overhead - avgOverhead) * emaPeriod + avgOverhead;
} }
} }

View File

@@ -10,7 +10,7 @@ import org.junit.Test;
import ru.core.events.handlers.AsyncEventHandler; import ru.core.events.handlers.AsyncEventHandler;
public class AsyncEventLoopBenchmark extends AbstractBenchmark { public class AsyncEventLoopBenchmark extends AbstractBenchmark {
private static final int ITERATIONS = 600; private static final int ITERATIONS = 200;
private static AsyncEventLoop asyncEventLoop; private static AsyncEventLoop asyncEventLoop;
private static AdvancedEventLoop advancedEventLoop; private static AdvancedEventLoop advancedEventLoop;
private static LoginEvent testEvent; private static LoginEvent testEvent;
@@ -19,8 +19,12 @@ public class AsyncEventLoopBenchmark extends AbstractBenchmark {
public static void setup() { public static void setup() {
asyncEventLoop = new AsyncEventLoop(); asyncEventLoop = new AsyncEventLoop();
asyncEventLoop.addEventHandler(new AsyncEventHandler()); asyncEventLoop.addEventHandler(new AsyncEventHandler());
asyncEventLoop.addEventHandler(new AsyncEventHandler());
asyncEventLoop.addEventHandler(new AsyncEventHandler());
advancedEventLoop = new AdvancedEventLoop(); advancedEventLoop = new AdvancedEventLoop();
advancedEventLoop.addEventHandler(new AsyncEventHandler()); advancedEventLoop.addEventHandler(new AsyncEventHandler());
advancedEventLoop.addEventHandler(new AsyncEventHandler());
advancedEventLoop.addEventHandler(new AsyncEventHandler());
testEvent = new LoginEvent(null); testEvent = new LoginEvent(null);
testEvent.setDenyReason("none"); testEvent.setDenyReason("none");
} }