Data: Clear more caches when under memory pressure and at shutdown

This commit is contained in:
zzz
2014-11-12 14:44:49 +00:00
parent f19ec4bd44
commit 397ae536f9
6 changed files with 41 additions and 4 deletions

View File

@ -104,4 +104,11 @@ public class Hash extends SimpleDataStructure {
}
return _base64ed;
}
/**
* @since 0.9.17
*/
public static void clearCache() {
_cache.clear();
}
}

View File

@ -68,4 +68,11 @@ public class PublicKey extends SimpleDataStructure {
public int length() {
return KEYSIZE_BYTES;
}
/**
* @since 0.9.17
*/
public static void clearCache() {
_cache.clear();
}
}

View File

@ -91,9 +91,16 @@ public class SDSCache<V extends SimpleDataStructure> {
*/
private class Shutdown implements Runnable {
public void run() {
synchronized(_cache) {
_cache.clear();
}
clear();
}
}
/**
* @since 0.9.17
*/
public void clear() {
synchronized(_cache) {
_cache.clear();
}
}

View File

@ -193,4 +193,11 @@ public class SigningPublicKey extends SimpleDataStructure {
buf.append(']');
return buf.toString();
}
/**
* @since 0.9.17
*/
public static void clearCache() {
_cache.clear();
}
}

View File

@ -1,4 +1,5 @@
2014-11-12 zzz
* Data: Clear more caches when under memory pressure and at shutdown
* Plugins: Fix bug in stopping a ClientApp plugin with $parameters in the args
2014-11-09 zzz

View File

@ -25,14 +25,18 @@ import java.util.concurrent.ConcurrentHashMap;
import gnu.getopt.Getopt;
import net.i2p.crypto.SigUtil;
import net.i2p.data.Base64;
import net.i2p.data.Certificate;
import net.i2p.data.DataFormatException;
import net.i2p.data.DataHelper;
import net.i2p.data.Destination;
import net.i2p.data.router.RouterInfo;
import net.i2p.data.Hash;
import net.i2p.data.PublicKey;
import net.i2p.data.SigningPrivateKey;
import net.i2p.data.SigningPublicKey;
import net.i2p.data.i2np.GarlicMessage;
import net.i2p.data.router.RouterInfo;
import net.i2p.router.message.GarlicMessageHandler;
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
import net.i2p.router.startup.CreateRouterInfoJob;
@ -346,6 +350,10 @@ public class Router implements RouterClock.ClockShiftListener {
SimpleByteCache.clearAll();
Destination.clearCache();
Translate.clearCache();
Hash.clearCache();
PublicKey.clearCache();
SigningPublicKey.clearCache();
SigUtil.clearCaches();
}
/**