From 60a60d49eca371fff46738354cc4ec81561c63d0 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Wed, 15 Jan 2003 00:47:09 +0000 Subject: [PATCH] Use runtime adjustments for our image and tile cache size. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2145 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/media/image/ImageManager.java | 20 +++++++++++++++---- .../com/threerings/media/tile/TileSet.java | 20 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/java/com/threerings/media/image/ImageManager.java b/src/java/com/threerings/media/image/ImageManager.java index e9e89c8e3..9f2729543 100644 --- a/src/java/com/threerings/media/image/ImageManager.java +++ b/src/java/com/threerings/media/image/ImageManager.java @@ -1,5 +1,5 @@ // -// $Id: ImageManager.java,v 1.37 2003/01/14 04:05:56 mdb Exp $ +// $Id: ImageManager.java,v 1.38 2003/01/15 00:47:08 mdb Exp $ package com.threerings.media.image; @@ -27,13 +27,14 @@ import javax.imageio.ImageIO; import javax.imageio.stream.ImageInputStream; import com.samskivert.io.NestableIOException; -import com.samskivert.util.ConfigUtil; import com.samskivert.util.LRUHashMap; +import com.samskivert.util.RuntimeAdjust; import com.samskivert.util.StringUtil; import com.samskivert.util.Throttle; import com.samskivert.util.Tuple; import com.threerings.media.Log; +import com.threerings.media.MediaPrefs; import com.threerings.resource.ResourceManager; /** @@ -93,8 +94,8 @@ public class ImageManager _rmgr = rmgr; // create our image cache - int icsize = ConfigUtil.getSystemProperty( - "narya.media.image.cache_size", DEFAULT_IMAGE_CACHE_SIZE); + int icsize = MediaPrefs.config.getValue( + IMAGE_CACHE_SIZE_KEY, DEFAULT_IMAGE_CACHE_SIZE); Log.debug("Creating image cache [size=" + icsize + "]."); _ccache = new LRUHashMap(icsize); @@ -491,6 +492,17 @@ public class ImageManager protected static final String IMAGEIO_LOADER = "com.threerings.media.image.ImageIOLoader"; + /** The config key for our cache size property. */ + protected static final String IMAGE_CACHE_SIZE_KEY = + "narya.media.image.cache_size"; + /** The maximum number of images that may be cached at any one time. */ protected static final int DEFAULT_IMAGE_CACHE_SIZE = 100; + + /** Register our image cache size with the runtime adjustments + * framework. */ + protected static RuntimeAdjust.IntAdjust _cacheSize = + new RuntimeAdjust.IntAdjust( + "Size (in images) of the image manager LRU cache [requires reboot]", + IMAGE_CACHE_SIZE_KEY, MediaPrefs.config, DEFAULT_IMAGE_CACHE_SIZE); } diff --git a/src/java/com/threerings/media/tile/TileSet.java b/src/java/com/threerings/media/tile/TileSet.java index 86aa9179a..28c505769 100644 --- a/src/java/com/threerings/media/tile/TileSet.java +++ b/src/java/com/threerings/media/tile/TileSet.java @@ -1,5 +1,5 @@ // -// $Id: TileSet.java,v 1.36 2003/01/13 22:49:46 mdb Exp $ +// $Id: TileSet.java,v 1.37 2003/01/15 00:47:09 mdb Exp $ package com.threerings.media.tile; @@ -8,12 +8,13 @@ import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.Serializable; -import com.samskivert.util.ConfigUtil; import com.samskivert.util.LRUHashMap; +import com.samskivert.util.RuntimeAdjust; import com.samskivert.util.StringUtil; import com.samskivert.util.Tuple; import com.threerings.media.Log; +import com.threerings.media.MediaPrefs; import com.threerings.media.image.Colorization; import com.threerings.media.image.Mirage; @@ -140,8 +141,8 @@ public abstract class TileSet // create our tile cache if necessary if (_tiles == null) { - int tcsize = ConfigUtil.getSystemProperty( - "narya.media.tile.cache_size", DEFAULT_TILE_CACHE_SIZE); + int tcsize = MediaPrefs.config.getValue( + TILE_CACHE_SIZE_KEY, DEFAULT_TILE_CACHE_SIZE); Log.debug("Creating tile cache [size=" + tcsize + "]."); _tiles = new LRUHashMap(tcsize); } @@ -301,6 +302,17 @@ public abstract class TileSet /** A weak cache of our tiles. */ protected static LRUHashMap _tiles; + /** The config key for our cache size property. */ + protected static final String TILE_CACHE_SIZE_KEY = + "narya.media.tile.cache_size"; + /** The default tile cache size. */ protected static final int DEFAULT_TILE_CACHE_SIZE = 500; + + /** Register our tile cache size with the runtime adjustments + * framework. */ + protected static RuntimeAdjust.IntAdjust _cacheSize = + new RuntimeAdjust.IntAdjust( + "Size (in tiles) of the tile LRU cache [requires reboot]", + TILE_CACHE_SIZE_KEY, MediaPrefs.config, DEFAULT_TILE_CACHE_SIZE); }