You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2014/04/21 23:00:20 UTC
svn commit: r1588981 - in /uima/uimaj/trunk/uimaj-core/src:
main/java/org/apache/uima/jcas/impl/JCasHashMap.java
test/java/org/apache/uima/jcas/impl/JCasHashMapTest.java
Author: schor
Date: Mon Apr 21 21:00:19 2014
New Revision: 1588981
URL: http://svn.apache.org/r1588981
Log:
No Jira - slight tune of JCasHash map - use load factor of .6 instead of .5. Fix the test case to work with arbitrary load factors.
Modified:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JCasHashMap.java
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/impl/JCasHashMapTest.java
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JCasHashMap.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JCasHashMap.java?rev=1588981&r1=1588980&r2=1588981&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JCasHashMap.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/impl/JCasHashMap.java Mon Apr 21 21:00:19 2014
@@ -63,7 +63,7 @@ public class JCasHashMap {
private int sizeWhichTriggersExpansion;
- private final float loadFactor = (float)0.50;
+ private final float loadFactor = (float)0.60;
private final int initialCapacity;
Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/impl/JCasHashMapTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/impl/JCasHashMapTest.java?rev=1588981&r1=1588980&r2=1588981&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/impl/JCasHashMapTest.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/impl/JCasHashMapTest.java Mon Apr 21 21:00:19 2014
@@ -130,23 +130,25 @@ public class JCasHashMapTest extends Tes
}
public void testGrowth() {
+ double loadfactor = .6;
JCasHashMap m = new JCasHashMap(64, true); // true = do use cache
assertTrue(m.size() == 0);
- fill32(m);
+ int switchpoint = (int)Math.floor(64 * loadfactor);
+ fill(switchpoint, m);
assertTrue(m.getbitsMask() == 63);
- m.put(new TOP(addrs[32], null));
+ m.put(new TOP(addrs[switchpoint + 1], null));
assertTrue(m.getbitsMask() == 127);
m.clear();
assertTrue(m.getbitsMask() == 127);
- fill32(m);
+ fill(switchpoint, m);
assertTrue(m.getbitsMask() == 127);
- m.put(new TOP(addrs[32], null));
+ m.put(new TOP(addrs[switchpoint + 1], null));
assertTrue(m.getbitsMask() == 127);
- m.clear(); // size is 33, so no shrinkage
+ m.clear(); // size is above switchpoint, so no shrinkage
assertTrue(m.getbitsMask() == 127);
m.clear(); // size is 0, so first time shrinkage a possibility
assertTrue(m.getbitsMask() == 127); // but we don't shrink on first time
@@ -160,8 +162,8 @@ public class JCasHashMapTest extends Tes
}
- private void fill32 (JCasHashMap m) {
- for (int i = 0; i < 32; i++) {
+ private void fill (int n, JCasHashMap m) {
+ for (int i = 0; i < n; i++) {
final int key = addrs[i];
TOP fs = new TOP(key, null);
m.put(fs);