From af526b9113efde17b9bead754f4b515305ac991c Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 19 May 2025 11:02:07 -0400 Subject: [PATCH] Include ModernFix itself in time calculations for dynamic resources --- .../perf/dynamic_resources/ForgeHooksClientMixin.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ForgeHooksClientMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ForgeHooksClientMixin.java index 198420e7..fc22e6dc 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ForgeHooksClientMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ForgeHooksClientMixin.java @@ -33,14 +33,18 @@ public class ForgeHooksClientMixin { if(!ModLoader.isLoadingStateValid()) return; ModelEvent.ModifyBakingResult bakeEvent = ((ModelEvent.ModifyBakingResult)event); - ModelBakeEventHelper helper = new ModelBakeEventHelper(bakeEvent.getModels()); - Method acceptEv = ObfuscationReflectionHelper.findMethod(ModContainer.class, "acceptEvent", Event.class); Stopwatch globalTimer = Stopwatch.createStarted(); + Stopwatch selfTimer = Stopwatch.createStarted(); + ModelBakeEventHelper helper = new ModelBakeEventHelper(bakeEvent.getModels()); + selfTimer.stop(); + Method acceptEv = ObfuscationReflectionHelper.findMethod(ModContainer.class, "acceptEvent", Event.class); Map times = new Object2ObjectOpenHashMap<>(); + times.put("modernfix", selfTimer); ModList.get().forEachModContainer((id, mc) -> { Map newRegistry = helper.wrapRegistry(id); ModelEvent.ModifyBakingResult postedEvent = new ModelEvent.ModifyBakingResult(newRegistry, bakeEvent.getModelBakery()); - Stopwatch timer = times.computeIfAbsent(id, $ -> Stopwatch.createStarted()); + Stopwatch timer = times.computeIfAbsent(id, $ -> Stopwatch.createUnstarted()); + timer.start(); try { acceptEv.invoke(mc, postedEvent); } catch(ReflectiveOperationException e) {