From 5ff47bad18941eeb05a9b4b4fb8ef2952ab24fe3 Mon Sep 17 00:00:00 2001 From: dfsek Date: Sat, 26 Dec 2020 21:36:15 -0700 Subject: [PATCH] improve cache configs --- .../api/structures/script/StructureScript.java | 13 +++++++------ .../java/com/dfsek/terra/carving/CarverCache.java | 2 +- .../com/dfsek/terra/config/base/PluginConfig.java | 15 +++++++++++---- platforms/bukkit/src/main/resources/config.yml | 5 +++-- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java b/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java index 8449d66e7..1038e1be2 100644 --- a/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java +++ b/common/src/main/java/com/dfsek/terra/api/structures/script/StructureScript.java @@ -29,12 +29,7 @@ import java.util.Random; public class StructureScript { private final Block block; private final String id; - private final LinkedHashMap cache = new LinkedHashMap() { - @Override - protected boolean removeEldestEntry(Map.Entry eldest) { - return this.size() > 128; - } - }; + private final LinkedHashMap cache; public StructureScript(InputStream inputStream, TerraPlugin main, ScriptRegistry registry) { Parser parser; @@ -58,6 +53,12 @@ public class StructureScript { throw new RuntimeException(e); } this.id = parser.getID(); + this.cache = new LinkedHashMap() { + @Override + protected boolean removeEldestEntry(Map.Entry eldest) { + return this.size() > main.getTerraConfig().getStructureCache(); + } + }; } /** diff --git a/common/src/main/java/com/dfsek/terra/carving/CarverCache.java b/common/src/main/java/com/dfsek/terra/carving/CarverCache.java index 6dcbcfe9f..809dd6936 100644 --- a/common/src/main/java/com/dfsek/terra/carving/CarverCache.java +++ b/common/src/main/java/com/dfsek/terra/carving/CarverCache.java @@ -29,7 +29,7 @@ public class CarverCache { } public List getPoints(int chunkX, int chunkZ, UserDefinedCarver carver) { - if(carvers.size() > main.getTerraConfig().getCacheSize() * 2) carvers.clear(); + if(carvers.size() > main.getTerraConfig().getCarverCacheSize()) carvers.clear(); return carvers.computeIfAbsent((((long) chunkX) << 32) | (chunkZ & 0xffffffffL), key -> { TerraBiomeGrid grid = main.getWorld(w).getGrid(); if(carver.isChunkCarved(w, chunkX, chunkZ, new FastRandom(MathUtil.getCarverChunkSeed(chunkX, chunkZ, w.getSeed() + carver.hashCode())))) { diff --git a/common/src/main/java/com/dfsek/terra/config/base/PluginConfig.java b/common/src/main/java/com/dfsek/terra/config/base/PluginConfig.java index c8ef7c82b..93596768a 100644 --- a/common/src/main/java/com/dfsek/terra/config/base/PluginConfig.java +++ b/common/src/main/java/com/dfsek/terra/config/base/PluginConfig.java @@ -35,9 +35,12 @@ public class PluginConfig implements ConfigTemplate { @Default private int biomeSearch = 4; - @Value("cache-size") + @Value("cache.carver") @Default - private int cacheSize = 384; + private int carverCache = 512; + @Value("cache.structure") + @Default + private int structureCache = 128; @Value("dump-default") @Default @@ -80,7 +83,11 @@ public class PluginConfig implements ConfigTemplate { return biomeSearch; } - public int getCacheSize() { - return cacheSize; + public int getCarverCacheSize() { + return carverCache; + } + + public int getStructureCache() { + return structureCache; } } diff --git a/platforms/bukkit/src/main/resources/config.yml b/platforms/bukkit/src/main/resources/config.yml index b13793a3f..c262958ae 100644 --- a/platforms/bukkit/src/main/resources/config.yml +++ b/platforms/bukkit/src/main/resources/config.yml @@ -1,9 +1,10 @@ debug: false data-save: PT6M language: "en_us" -fail-type: SHUTDOWN dump-default: true biome-search-resolution: 4 -cache-size: 384 +cache: + carver: 512 + structure: 128 master-disable: caves: false \ No newline at end of file