From 28e98a617d098a02b5f42e992d6bbb4743ddbd2d Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Wed, 18 May 2011 08:34:15 -0500 Subject: [PATCH] Add basic progress messages on fullrender (end of each map, every 100 renders), and add dispose on Graphics2D to accelerate non-heap memory recovery --- src/main/java/org/dynmap/MapManager.java | 11 +++++++++++ .../java/org/dynmap/kzedmap/DefaultTileRenderer.java | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/dynmap/MapManager.java b/src/main/java/org/dynmap/MapManager.java index 285e29b3..211ca0a8 100644 --- a/src/main/java/org/dynmap/MapManager.java +++ b/src/main/java/org/dynmap/MapManager.java @@ -54,6 +54,7 @@ public class MapManager { HashSet rendered = null; LinkedList renderQueue = null; MapTile tile0 = null; + int rendercnt = 0; /* Full world, all maps render */ FullWorldRenderState(DynmapWorld dworld, Location l) { @@ -76,8 +77,13 @@ public class MapManager { if(tile0 == null) { /* Not single tile render */ /* If render queue is empty, start next map */ if(renderQueue.isEmpty()) { + if(map_index >= 0) { /* Finished a map? */ + log.info(LOG_PREFIX + "Full render of map '" + world.maps.get(map_index).getClass().getSimpleName() + "' of world '" + + world.world.getName() + "' completed - " + rendercnt + " tiles rendered."); + } found.clear(); rendered.clear(); + rendercnt = 0; map_index++; /* Next map */ if(map_index >= world.maps.size()) { /* Last one done? */ log.info(LOG_PREFIX + "Full render finished."); @@ -125,6 +131,11 @@ public class MapManager { } } found.remove(tile); + rendercnt++; + if((rendercnt % 100) == 0) { + log.info("Full render of map '" + world.maps.get(map_index).getClass().getSimpleName() + "' on world '" + + w.getName() + "' in progress - " + rendercnt + " tiles rendered, " + renderQueue.size() + " tiles pending."); + } } /* And unload what we loaded */ while (!loadedChunks.isEmpty()) { diff --git a/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java b/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java index da514443..5c2cbe4c 100644 --- a/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java +++ b/src/main/java/org/dynmap/kzedmap/DefaultTileRenderer.java @@ -187,7 +187,8 @@ public class DefaultTileRenderer implements MapTileRenderer { Graphics2D g2 = zIm.createGraphics(); g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g2.drawImage(img, ox, oy, scw, sch, null); - + g2.dispose(); /* Supposed to speed up non-heap memory recovery */ + img.flush(); /* save zoom-out tile */