diff --git a/src/main/java/electrosphere/client/terrain/data/TerrainChunkDataPool.java b/src/main/java/electrosphere/client/terrain/data/TerrainChunkDataPool.java index 31ff1a49..825acef2 100644 --- a/src/main/java/electrosphere/client/terrain/data/TerrainChunkDataPool.java +++ b/src/main/java/electrosphere/client/terrain/data/TerrainChunkDataPool.java @@ -44,5 +44,13 @@ public class TerrainChunkDataPool { TerrainChunkDataPool.pool.add(data); lock.unlock(); } + + /** + * Gets the size of the chunk pool + * @return The size of the chunk pool + */ + public static int getPoolSize(){ + return pool.size(); + } } diff --git a/src/main/java/electrosphere/client/ui/menu/debug/perf/ImGuiMemory.java b/src/main/java/electrosphere/client/ui/menu/debug/perf/ImGuiMemory.java index 550480df..9ef51536 100644 --- a/src/main/java/electrosphere/client/ui/menu/debug/perf/ImGuiMemory.java +++ b/src/main/java/electrosphere/client/ui/menu/debug/perf/ImGuiMemory.java @@ -4,7 +4,9 @@ import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; import java.util.List; +import electrosphere.client.terrain.data.TerrainChunkDataPool; import electrosphere.engine.Globals; +import electrosphere.mem.BlockChunkPool; import electrosphere.renderer.ui.imgui.ImGuiLinePlot; import electrosphere.renderer.ui.imgui.ImGuiLinePlot.ImGuiLinePlotDataset; import electrosphere.renderer.ui.imgui.ImGuiWindow; @@ -73,6 +75,11 @@ public class ImGuiMemory { System.gc(); } + if(ImGui.collapsingHeader("Object Pools")){ + ImGui.text("Block Chunk Pool: " + BlockChunkPool.getPoolSize()); + ImGui.text("Terrain Chunk Pool: " + TerrainChunkDataPool.getPoolSize()); + } + //memory usage graph memoryGraphDataset.addPoint(memoryUsage); memoryGraph.draw(); diff --git a/src/main/java/electrosphere/mem/BlockChunkPool.java b/src/main/java/electrosphere/mem/BlockChunkPool.java index 7f67cae9..f80b8ffd 100644 --- a/src/main/java/electrosphere/mem/BlockChunkPool.java +++ b/src/main/java/electrosphere/mem/BlockChunkPool.java @@ -50,4 +50,12 @@ public class BlockChunkPool { lock.unlock(); } + /** + * Gets the size of the short pool + * @return The size of the short pool + */ + public static int getPoolSize(){ + return shortPool.size(); + } + }