From ee6489fb699a059a802a6ac6aaba560eaa821727 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sun, 27 Jul 2025 14:55:34 -0400 Subject: [PATCH] Make mixin.perf.thread_priorities limit background thread count as well --- .../modernfix/core/ModernFixMixinPlugin.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java b/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java index 5fbe1c36..73b5eb8d 100644 --- a/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java +++ b/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java @@ -87,9 +87,21 @@ public class ModernFixMixinPlugin implements IMixinConfigPlugin { t.setDaemon(true); t.start(); } + + if (ModernFixPlatformHooks.INSTANCE.isClient() && ModernFixMixinPlugin.instance.isOptionEnabled("perf.thread_priorities.AdjustThreadCount")) { + computeBetterThreadCount(); + } } } + private void computeBetterThreadCount() { + // Server thread + client thread + GC thread + int reservedCores = 3; + int availableBackgroundCores = Math.max(1, Runtime.getRuntime().availableProcessors() - reservedCores); + logger.info("Configuring Minecraft's max.bg.threads option with {} threads", availableBackgroundCores); + System.setProperty("max.bg.threads", String.valueOf(availableBackgroundCores)); + } + @Override public void onLoad(String mixinPackage) {