mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 17:07:43 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: ab74bb45 Speed up processing of chunk loads and generation f5dd491f Increase Light Queue Size 9ab69348 Don't load chunks when attempting to unload a chunk 38c62622 Improve Optimize Memory use logic to make iterator safer and fix bad plugins like P2
176 lines
9.3 KiB
Diff
176 lines
9.3 KiB
Diff
From e883bbd022a3366c55638d766bac3360073daef9 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
|
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<Class<?>, 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
|
|
|