#50472: Effectiveness of MDRCache improved. BLD200410281800
authormmatula@netbeans.org
Thu, 28 Oct 2004 15:14:46 +0000
changeset 1610d2a26cbf8ea6
parent 1609 dfdfc942d2ae
child 1611 7df17f3648b2
#50472: Effectiveness of MDRCache improved.
mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java
mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/MDRCache.java
     1.1 --- a/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java	Tue Oct 26 09:30:15 2004 +0000
     1.2 +++ b/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java	Thu Oct 28 15:14:46 2004 +0000
     1.3 @@ -70,7 +70,7 @@
     1.4      /* tuning parameters explained above */
     1.5      static final int PAGE_SIZE = 2048;
     1.6      static final int FILE_CACHE_SIZE = 128;
     1.7 -    static final int MDR_CACHE_SIZE = 2048;
     1.8 +    static final int MDR_CACHE_SIZE = 1024;
     1.9      static final int MDR_CACHE_THRESHHOLD = 1000;
    1.10  
    1.11      /* number of times database has been modified */
     2.1 --- a/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/MDRCache.java	Tue Oct 26 09:30:15 2004 +0000
     2.2 +++ b/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/MDRCache.java	Thu Oct 28 15:14:46 2004 +0000
     2.3 @@ -132,21 +132,22 @@
     2.4          }
     2.5  
     2.6          public Object put(Object key, Object value) {
     2.7 -            inner[cursor] = value;
     2.8 -            cursor++;
     2.9 -            if (size < inner.length) {
    2.10 -                size++;
    2.11 -            }
    2.12 -            if (cursor >= size) {
    2.13 -                cursor = 0;
    2.14 +            if (value != inner[cursor]) {
    2.15 +                cursor++;
    2.16 +                if (size < inner.length) {
    2.17 +                    size++;
    2.18 +                }
    2.19 +                if (cursor >= inner.length) {
    2.20 +                    cursor = 0;
    2.21 +                }
    2.22 +                inner[cursor] = value;
    2.23              }
    2.24              return null;
    2.25          }
    2.26  
    2.27          public void clear() {
    2.28              Arrays.fill(inner, null);
    2.29 -            size = 0;
    2.30 -            cursor = 0;
    2.31 +            size = cursor = 0;
    2.32          }
    2.33  
    2.34          public int size() {