From e883bbd022a3366c55638d766bac3360073daef9 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 Apr 2020 02:36:45 -0500 Subject: [PATCH] Add more timings timers --- .../java/co/aikar/timings/MinecraftTimings.java | 16 ++++++++++++++++ .../net/minecraft/server/EntityInsentient.java | 14 ++++++++++++++ .../java/net/minecraft/server/EntityLiving.java | 12 ++++++++++++ .../java/net/minecraft/server/WorldServer.java | 2 ++ 4 files changed, 44 insertions(+) diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java index 7fc9a625a3..cb27ed36e6 100644 --- a/src/main/java/co/aikar/timings/MinecraftTimings.java +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -47,6 +47,22 @@ public final class MinecraftTimings { public static final Timing goalCleanup = Timings.ofSafe("PathfinderGoal - Cleanup"); public static final Timing goalUpdate = Timings.ofSafe("PathfinderGoal - Update"); public static final Timing goalTick = Timings.ofSafe("PathfinderGoal - Tick"); + + public static final Timing entityMovementTick = Timings.ofSafe("Entity Movement"); + public static final Timing entityMovementTickAI = Timings.ofSafe("Entity Movement - AI"); + public static final Timing entityMovementTickNewAI = Timings.ofSafe("Entity Movement - New AI"); + public static final Timing entityMovementTickJump = Timings.ofSafe("Entity Movement - Jump"); + public static final Timing entityMovementTickTravel = Timings.ofSafe("Entity Movement - Travel"); + public static final Timing entityMovementTickPush = Timings.ofSafe("Entity Movement - Push"); + + public static final Timing entityInsentientSensing = Timings.ofSafe("Entity Insentient - Sensing"); + public static final Timing entityInsentientTargetSelector = Timings.ofSafe("Entity Insentient - TargetSelector"); + public static final Timing entityInsentientGoalSelector = Timings.ofSafe("Entity Insentient - GoalSelector"); + public static final Timing entityInsentientNavigation = Timings.ofSafe("Entity Insentient - Navigation"); + public static final Timing entityInsentientMobTick = Timings.ofSafe("Entity Insentient - MobTick"); + public static final Timing entityInsentientControls = Timings.ofSafe("Entity Insentient - Controls"); + + public static final Timing passengerTick = Timings.ofSafe("Passenger Tick"); // Purpur end private static final Map, String> taskNameCache = new MapMaker().weakKeys().makeMap(); diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java index bac6cea1ff..f9ca4280d4 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -1,5 +1,7 @@ package net.minecraft.server; +import co.aikar.timings.Timing; +import co.aikar.timings.Timings; import com.google.common.collect.Maps; import java.util.Arrays; import java.util.Iterator; @@ -676,21 +678,32 @@ public abstract class EntityInsentient extends EntityLiving { } // Paper end this.world.getMethodProfiler().enter("sensing"); + co.aikar.timings.MinecraftTimings.entityInsentientSensing.startTiming(); // Purpur this.bw.a(); + co.aikar.timings.MinecraftTimings.entityInsentientSensing.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("targetSelector"); + co.aikar.timings.MinecraftTimings.entityInsentientTargetSelector.startTiming(); // Purpur this.targetSelector.doTick(); + co.aikar.timings.MinecraftTimings.entityInsentientTargetSelector.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("goalSelector"); + co.aikar.timings.MinecraftTimings.entityInsentientGoalSelector.startTiming(); // Purpur this.goalSelector.doTick(); + co.aikar.timings.MinecraftTimings.entityInsentientGoalSelector.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("navigation"); + co.aikar.timings.MinecraftTimings.entityInsentientNavigation.startTiming(); // Purpur this.navigation.c(); + co.aikar.timings.MinecraftTimings.entityInsentientNavigation.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("mob tick"); + co.aikar.timings.MinecraftTimings.entityInsentientMobTick.startTiming(); // Purpur this.mobTick(); + co.aikar.timings.MinecraftTimings.entityInsentientMobTick.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("controls"); + co.aikar.timings.MinecraftTimings.entityInsentientControls.startTiming(); // Purpur this.world.getMethodProfiler().enter("move"); this.moveController.a(); this.world.getMethodProfiler().exitEnter("look"); @@ -698,6 +711,7 @@ public abstract class EntityInsentient extends EntityLiving { this.world.getMethodProfiler().exitEnter("jump"); this.bq.b(); this.world.getMethodProfiler().exit(); + co.aikar.timings.MinecraftTimings.entityInsentientControls.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.K(); } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 2769077bb4..fdb8a0f8c7 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2385,7 +2385,9 @@ public abstract class EntityLiving extends Entity { } } + MinecraftTimings.entityMovementTick.startTiming(); // Purpur if (!dead) this.movementTick(); // Purpur + MinecraftTimings.entityMovementTick.stopTiming(); // Purpur double d0 = this.locX() - this.lastX; double d1 = this.locZ() - this.lastZ; float f = (float) (d0 * d0 + d1 * d1); @@ -2592,18 +2594,23 @@ public abstract class EntityLiving extends Entity { this.setMot(d4, d5, d6); this.world.getMethodProfiler().enter("ai"); + co.aikar.timings.MinecraftTimings.entityMovementTickAI.startTiming(); // Purpur if (this.isFrozen()) { this.jumping = false; this.aZ = 0.0F; this.bb = 0.0F; } else if (this.doAITick()) { this.world.getMethodProfiler().enter("newAi"); + co.aikar.timings.MinecraftTimings.entityMovementTickNewAI.startTiming(); // Purpur this.doTick(); + co.aikar.timings.MinecraftTimings.entityMovementTickNewAI.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); } + co.aikar.timings.MinecraftTimings.entityMovementTickAI.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("jump"); + co.aikar.timings.MinecraftTimings.entityMovementTickJump.startTiming(); // Purpur if (this.jumping) { if (this.N > 0.0D && (!this.onGround || this.N > 0.4D)) { this.c(TagsFluid.WATER); @@ -2619,22 +2626,27 @@ public abstract class EntityLiving extends Entity { this.jumpTicks = 0; } + co.aikar.timings.MinecraftTimings.entityMovementTickJump.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("travel"); + co.aikar.timings.MinecraftTimings.entityMovementTickTravel.startTiming(); // Purpur this.aZ *= 0.98F; this.bb *= 0.98F; this.n(); AxisAlignedBB axisalignedbb = this.getBoundingBox(); this.e(new Vec3D((double) this.aZ, (double) this.ba, (double) this.bb)); + co.aikar.timings.MinecraftTimings.entityMovementTickTravel.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); this.world.getMethodProfiler().enter("push"); + co.aikar.timings.MinecraftTimings.entityMovementTickPush.startTiming(); // Purpur if (this.bn > 0) { --this.bn; this.a(axisalignedbb, this.getBoundingBox()); } this.collideNearby(); + co.aikar.timings.MinecraftTimings.entityMovementTickPush.stopTiming(); // Purpur this.world.getMethodProfiler().exit(); // Purpur start if (EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java index 5b01cf947d..27c3ad7311 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -815,7 +815,9 @@ public class WorldServer extends World { return IRegistry.ENTITY_TYPE.getKey(entity1.getEntityType()).toString(); }); gameprofilerfiller.c("tickPassenger"); + co.aikar.timings.MinecraftTimings.passengerTick.startTiming(); // Purpur entity1.passengerTick(); + co.aikar.timings.MinecraftTimings.passengerTick.stopTiming(); // Purpur gameprofilerfiller.exit(); } -- 2.24.0