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.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.*;
@Slf4j
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
private double avgOverhead = 0;
private ExecutorService preEventExecutor = Executors.newSingleThreadExecutor();
@Override
public void callEvent(Event event) {
@@ -77,7 +75,7 @@ public class AsyncEventLoop extends AdvancedEventLoop {
if (avgOverhead == 0)
avgOverhead = overhead;
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;
public class AsyncEventLoopBenchmark extends AbstractBenchmark {
private static final int ITERATIONS = 600;
private static final int ITERATIONS = 200;
private static AsyncEventLoop asyncEventLoop;
private static AdvancedEventLoop advancedEventLoop;
private static LoginEvent testEvent;
@@ -19,8 +19,12 @@ public class AsyncEventLoopBenchmark extends AbstractBenchmark {
public static void setup() {
asyncEventLoop = new AsyncEventLoop();
asyncEventLoop.addEventHandler(new AsyncEventHandler());
asyncEventLoop.addEventHandler(new AsyncEventHandler());
asyncEventLoop.addEventHandler(new AsyncEventHandler());
advancedEventLoop = new AdvancedEventLoop();
advancedEventLoop.addEventHandler(new AsyncEventHandler());
advancedEventLoop.addEventHandler(new AsyncEventHandler());
advancedEventLoop.addEventHandler(new AsyncEventHandler());
testEvent = new LoginEvent(null);
testEvent.setDenyReason("none");
}