Tweaked executor service settings
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user