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) {