mirror of
https://github.com/BX-Team/DivineMC.git
synced 2025-12-22 00:09:15 +00:00
implement new patches
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||
Date: Sat, 22 Feb 2025 02:33:28 +0300
|
||||
Subject: [PATCH] Add chunk worker algorithm
|
||||
|
||||
|
||||
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/util/MoonriseCommon.java b/src/main/java/ca/spottedleaf/moonrise/common/util/MoonriseCommon.java
|
||||
index 632920e04686d8a0fd0a60e87348be1fe7862a3c..38b8cdac418ab2308c0392be49289356cbe81fb7 100644
|
||||
--- a/src/main/java/ca/spottedleaf/moonrise/common/util/MoonriseCommon.java
|
||||
+++ b/src/main/java/ca/spottedleaf/moonrise/common/util/MoonriseCommon.java
|
||||
@@ -3,6 +3,8 @@ package ca.spottedleaf.moonrise.common.util;
|
||||
import ca.spottedleaf.concurrentutil.executor.thread.PrioritisedThreadPool;
|
||||
import ca.spottedleaf.moonrise.common.PlatformHooks;
|
||||
import com.mojang.logging.LogUtils;
|
||||
+import org.bxteam.divinemc.DivineConfig;
|
||||
+import org.bxteam.divinemc.server.chunk.ChunkSystemAlgorithms;
|
||||
import org.slf4j.Logger;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@@ -38,26 +40,16 @@ public final class MoonriseCommon {
|
||||
public static final PrioritisedThreadPool.ExecutorGroup LOAD_GROUP = MoonriseCommon.WORKER_POOL.createExecutorGroup(SERVER_DIVISION, 0);
|
||||
|
||||
public static void adjustWorkerThreads(final int configWorkerThreads, final int configIoThreads) {
|
||||
- int defaultWorkerThreads = Runtime.getRuntime().availableProcessors() / 2;
|
||||
- if (defaultWorkerThreads <= 4) {
|
||||
- defaultWorkerThreads = defaultWorkerThreads <= 3 ? 1 : 2;
|
||||
- } else {
|
||||
- defaultWorkerThreads = defaultWorkerThreads / 2;
|
||||
- }
|
||||
- defaultWorkerThreads = Integer.getInteger(PlatformHooks.get().getBrand() + ".WorkerThreadCount", Integer.valueOf(defaultWorkerThreads));
|
||||
-
|
||||
- int workerThreads = configWorkerThreads;
|
||||
-
|
||||
- if (workerThreads <= 0) {
|
||||
- workerThreads = defaultWorkerThreads;
|
||||
- }
|
||||
-
|
||||
- final int ioThreads = Math.max(1, configIoThreads);
|
||||
+ // DivineMC start - Add chunk worker algorithm
|
||||
+ ChunkSystemAlgorithms algorithm = DivineConfig.chunkWorkerAlgorithm;
|
||||
+ int workerThreads = algorithm.evalWorkers(configWorkerThreads, configIoThreads);
|
||||
+ int ioThreads = algorithm.evalIO(configWorkerThreads, configIoThreads);
|
||||
|
||||
WORKER_POOL.adjustThreadCount(workerThreads);
|
||||
IO_POOL.adjustThreadCount(ioThreads);
|
||||
|
||||
- LOGGER.info(PlatformHooks.get().getBrand() + " is using " + workerThreads + " worker threads, " + ioThreads + " I/O threads");
|
||||
+ LOGGER.info("ChunkSystem using '{}' algorithm, {} worker threads, {} I/O threads", algorithm.asDebugString(), workerThreads, ioThreads);
|
||||
+ // DivineMC end - Add chunk worker algorithm
|
||||
}
|
||||
|
||||
public static final PrioritisedThreadPool IO_POOL = new PrioritisedThreadPool(
|
||||
Reference in New Issue
Block a user