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++) {

Reply via email to