Author: tdraier
Date: Wed Aug 16 15:31:35 2006
New Revision: 14910
URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14910&repname=jahia
Log:
use memory settings to calculate cache flush ratio
Modified:
trunk/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java
Modified:
trunk/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java
URL:
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java&rev=14910&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java
(original)
+++ trunk/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java
Wed Aug 16 15:31:35 2006
@@ -40,6 +40,7 @@
private String name;
private long cacheLimit = -1;
+ private int ratio = 4;
private static LRUEntries allLRUsEntries = new LRUEntries();
@@ -188,6 +189,9 @@
*/
public void setCacheLimit(long limit) {
cacheLimit = limit;
+ if (cacheLimit > 0) {
+ ratio = (int) (Runtime.getRuntime().maxMemory() / cacheLimit /
1.5);
+ }
}
public String toString() {
@@ -207,7 +211,7 @@
synchronized(allLRUsEntries) {
if
((runtime.maxMemory()-runtime.totalMemory()+runtime.freeMemory()) < cacheLimit)
{
- int toFlush = allLRUsEntries.size()/4;
+ int toFlush = allLRUsEntries.size() / ratio;
int s = allLRUsEntries.size();
logger.info("Memory limit reached
(free="+runtime.freeMemory()+") , flushing " + toFlush + " cache entries");
for (int i=0; i<toFlush ; i++) {