perf logging, cap catchup loops
This commit is contained in:
@@ -13,7 +13,7 @@ namespace OrekiWoofsBees.Common;
|
||||
/// Instead of each beehive scanning its radius every tick, this registry
|
||||
/// incrementally scans blocks across all beehives to keep performance consistent
|
||||
/// </summary>
|
||||
public class PlantPositionRegistryModSystem2 : ModSystem, IPlantPositionRegistry
|
||||
public class PlantPositionRegistryModSystem2 : ModSystem, IPlantPositionRegistry, IModEntity
|
||||
{
|
||||
private readonly static BlockPos staticBlockPos = new(0);
|
||||
|
||||
@@ -26,6 +26,7 @@ public class PlantPositionRegistryModSystem2 : ModSystem, IPlantPositionRegistry
|
||||
private readonly Dictionary<StructVec3i, BeehiveScanCursor> beehives = [];
|
||||
private readonly HashSet<StructVec3i> flowerPositions = [];
|
||||
private readonly HashSet<StructVec3i> cropPositions = [];
|
||||
private readonly Stopwatch stopwatch = new();
|
||||
|
||||
// blocks below this are skipped
|
||||
private readonly Dictionary<(int X, int Z), int> soilFloorCache = [];
|
||||
@@ -208,7 +209,7 @@ public class PlantPositionRegistryModSystem2 : ModSystem, IPlantPositionRegistry
|
||||
if (Api is null)
|
||||
return;
|
||||
|
||||
var stopwatch = Stopwatch.StartNew();
|
||||
stopwatch.Restart();
|
||||
if (beehives.Count == 0)
|
||||
return;
|
||||
|
||||
@@ -279,11 +280,7 @@ public class PlantPositionRegistryModSystem2 : ModSystem, IPlantPositionRegistry
|
||||
}
|
||||
}
|
||||
|
||||
stopwatch.Stop();
|
||||
if (stopwatch.Elapsed.TotalSeconds > 0.2)
|
||||
{
|
||||
Mod.Logger.Warning($"{nameof(PlantPositionRegistryModSystem2)} {nameof(OnTick)} took {stopwatch.Elapsed.TotalSeconds:F2}s (beehives: {beehives.Count}).");
|
||||
}
|
||||
stopwatch.StopAndLogTime(this, 0.01);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user