perf: 优化代码

This commit is contained in:
2022-11-02 09:22:20 +08:00
parent 484abd375d
commit baa402c316
3 changed files with 32 additions and 41 deletions

View File

@@ -74,8 +74,6 @@ public class HamsterCorePlugin extends JavaPlugin {
Logger logger = getLogger(); Logger logger = getLogger();
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
logger.info("仓鼠核心正在关闭..."); logger.info("仓鼠核心正在关闭...");
CoreConstantObjects.WORKER_EXECUTOR.shutdownNow();
logger.info("已暂停 WORKER_EXECUTOR.");
CoreConstantObjects.SCHEDULED_EXECUTOR.shutdownNow(); CoreConstantObjects.SCHEDULED_EXECUTOR.shutdownNow();
logger.info("已暂停 SCHEDULED_EXECUTOR."); logger.info("已暂停 SCHEDULED_EXECUTOR.");
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;

View File

@@ -43,8 +43,6 @@ public class HamsterCorePlugin extends Plugin {
Logger logger = getLogger(); Logger logger = getLogger();
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
logger.info("仓鼠核心正在关闭..."); logger.info("仓鼠核心正在关闭...");
CoreConstantObjects.WORKER_EXECUTOR.shutdownNow();
logger.info("已暂停 WORKER_EXECUTOR.");
CoreConstantObjects.SCHEDULED_EXECUTOR.shutdownNow(); CoreConstantObjects.SCHEDULED_EXECUTOR.shutdownNow();
logger.info("已暂停 SCHEDULED_EXECUTOR."); logger.info("已暂停 SCHEDULED_EXECUTOR.");
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;

View File

@@ -6,7 +6,9 @@ import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.*; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public interface CoreConstantObjects { public interface CoreConstantObjects {
@@ -30,25 +32,19 @@ public interface CoreConstantObjects {
.serializeNulls() .serializeNulls()
.setPrettyPrinting() .setPrettyPrinting()
.create(); .create();
/**
* JSON 解析器
*/
JsonParser JSON_PARSER = new JsonParser();
/**
* 异步线程
*/
ExecutorService WORKER_EXECUTOR = new ThreadPoolExecutor(1, Integer.MAX_VALUE, 60, TimeUnit.MINUTES, new SynchronousQueue<>(), new APIThreadFactory("HamsterCore - Executor"));
/** /**
* 调度器线程 * 调度器线程
*/ */
ScheduledExecutorService SCHEDULED_EXECUTOR = Executors.newScheduledThreadPool(1, new APIThreadFactory("HamsterCore - Scheduler")); ScheduledExecutorService SCHEDULED_EXECUTOR = Executors.newScheduledThreadPool(1, new NamedThreadFactory("HamsterCore - Scheduler"));
class APIThreadFactory implements ThreadFactory { }
class NamedThreadFactory implements ThreadFactory {
private final String name; private final String name;
private int threadID; private int threadID;
public APIThreadFactory(String name) { public NamedThreadFactory(String name) {
this.name = name; this.name = name;
threadID = 0; threadID = 0;
} }
@@ -58,9 +54,9 @@ public interface CoreConstantObjects {
threadID++; threadID++;
return new Thread(runnable, name + "#" + threadID); return new Thread(runnable, name + "#" + threadID);
} }
} }
class MessageTypeAdapter implements JsonSerializer<DisplayMessage>, JsonDeserializer<DisplayMessage> { class MessageTypeAdapter implements JsonSerializer<DisplayMessage>, JsonDeserializer<DisplayMessage> {
public static final MessageTypeAdapter INSTANCE = new MessageTypeAdapter(); public static final MessageTypeAdapter INSTANCE = new MessageTypeAdapter();
private MessageTypeAdapter() { private MessageTypeAdapter() {
@@ -75,5 +71,4 @@ public interface CoreConstantObjects {
public JsonElement serialize(DisplayMessage src, Type typeOfSrc, JsonSerializationContext context) { public JsonElement serialize(DisplayMessage src, Type typeOfSrc, JsonSerializationContext context) {
return src.saveToJson(); return src.saveToJson();
} }
}
} }