From: Wolfgang M. M. <wol...@us...> - 2004-08-12 18:54:34
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/util/hashtable/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11331/src/org/exist/util/hashtable/test Modified Files: HashtableTest.java Log Message: Switched back to simple LRU page replacement strategy for document data in dom.dbx. As every page is accessed at most two times during storage, the LRDCache did not work very well. Improved the LRU implementation. Index: HashtableTest.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/util/hashtable/test/HashtableTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** HashtableTest.java 15 Dec 2003 13:15:08 -0000 1.4 --- HashtableTest.java 12 Aug 2004 18:54:21 -0000 1.5 *************** *** 29,32 **** --- 29,33 ---- import org.exist.util.hashtable.Int2ObjectHashMap; + import org.exist.util.hashtable.SequencedLongHashMap; /** *************** *** 35,41 **** public class HashtableTest extends TestCase { ! private int tabSize = 10000; ! private Int2ObjectHashMap table = new Int2ObjectHashMap(tabSize); ! private int keys[] = new int[tabSize]; private Object values[] = new Object[tabSize]; --- 36,40 ---- public class HashtableTest extends TestCase { ! private int tabSize = 100000; private Object values[] = new Object[tabSize]; *************** *** 49,52 **** --- 48,53 ---- public void testPut() { + int keys[] = new int[tabSize]; + Int2ObjectHashMap table = new Int2ObjectHashMap(tabSize); Random rand = new Random(System.currentTimeMillis()); for(int i = 0; i < tabSize; i++) { *************** *** 88,90 **** --- 89,115 ---- } + public void testSequencedMap() { + long keys[] = new long[tabSize]; + SequencedLongHashMap table = new SequencedLongHashMap(tabSize); + Random rand = new Random(System.currentTimeMillis()); + for(int i = 0; i < tabSize; i++) { + do { + keys[i] = rand.nextInt(Integer.MAX_VALUE); + } while(table.get(keys[i]) != null); + values[i] = new String("a" + keys[i]); + table.put(keys[i], values[i]); + } + for(int i = 0; i < tabSize; i++) { + Object v = table.get(keys[i]); + assertEquals( values[i], v); + } + int c = 0; + for(Iterator i = table.iterator(); i.hasNext(); c++) { + Long v = (Long)i.next(); + assertEquals(keys[c], v.longValue()); + } + System.out.println(table.size() + " = " + c); + System.out.println("maxRehash: " + table.getMaxRehash()); + assertEquals(table.size(), c); + } } |