From fd887b47b4ba4fd136b5950e80cd486e1112e2f8 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Sat, 10 Dec 2011 11:32:57 +0800 Subject: [PATCH] Add tiles-rendered-at-once setting, control update tile concurrency --- src/main/java/org/dynmap/AsynchronousQueue.java | 1 + src/main/java/org/dynmap/MapManager.java | 3 ++- src/main/resources/configuration.txt | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/dynmap/AsynchronousQueue.java b/src/main/java/org/dynmap/AsynchronousQueue.java index 74be3aa7..6e47aae1 100644 --- a/src/main/java/org/dynmap/AsynchronousQueue.java +++ b/src/main/java/org/dynmap/AsynchronousQueue.java @@ -23,6 +23,7 @@ public class AsynchronousQueue { this.dequeueTime = dequeueTime; this.accelDequeueTime = accelDequeueTime; this.accelDequeueThresh = accelDequeueThresh; + if(pendinglimit < 1) pendinglimit = 1; this.pendinglimit = pendinglimit; } diff --git a/src/main/java/org/dynmap/MapManager.java b/src/main/java/org/dynmap/MapManager.java index 31c2111d..1995f9a7 100644 --- a/src/main/java/org/dynmap/MapManager.java +++ b/src/main/java/org/dynmap/MapManager.java @@ -683,7 +683,8 @@ public class MapManager { }, (int) (configuration.getDouble("renderinterval", 0.5) * 1000), configuration.getInteger("renderacceleratethreshold", 30), - (int)(configuration.getDouble("renderaccelerateinterval", 0.2) * 1000), (Runtime.getRuntime().availableProcessors()+1)/2); + (int)(configuration.getDouble("renderaccelerateinterval", 0.2) * 1000), + configuration.getInteger("tiles-rendered-at-once", (Runtime.getRuntime().availableProcessors()+1)/2)); /* On dedicated thread, so default to no delays */ timeslice_int = (long)(configuration.getDouble("timesliceinterval", 0.0) * 1000); diff --git a/src/main/resources/configuration.txt b/src/main/resources/configuration.txt index d4bb0b8e..7d104a5a 100644 --- a/src/main/resources/configuration.txt +++ b/src/main/resources/configuration.txt @@ -130,6 +130,9 @@ renderacceleratethreshold: 60 # How often to render tiles when backlog is above renderacceleratethreshold renderaccelerateinterval: 0.2 +# How many update tiles to work on at once (if not defined, default is 1/2 the number of cores) +tiles-rendered-at-once: 2 + # Save and restore pending tile renders - prevents their loss on server shutdown or /reload saverestorepending: true