Initial commit for FilePerMap implementation.

This commit is contained in:
danielshaya
2015-04-23 13:22:41 +01:00
parent 772ad8f7c8
commit 42e2eefc7f
2 changed files with 32 additions and 4 deletions
@@ -63,9 +63,9 @@ public class FilePerKeyMap<K, V> implements ChronicleMap<K, V> {
Path p = dirPath.resolve(fileName);
String mapVal = getFileContents(p);
if(isProgrammaticUpdate(p.toFile())){
System.out.println("Programmatic create to " + mapKey + " : " + mapVal);
System.out.println("Programmatic create to " + mapKey);// + " : " + mapVal);
}else {
System.out.println("created " + mapKey + " : " + mapVal);
System.out.println("created " + mapKey);// + " : " + mapVal);
}
} else if (kind == StandardWatchEventKinds.ENTRY_DELETE) {
Path p = dirPath.resolve(fileName);
@@ -79,9 +79,9 @@ public class FilePerKeyMap<K, V> implements ChronicleMap<K, V> {
Path p = dirPath.resolve(fileName);
String mapVal = getFileContents(p);
if(isProgrammaticUpdate(p.toFile())){
System.out.println("Programmatic update to " + mapKey + " : " + mapVal);
System.out.println("Programmatic update to " + mapKey);// + " : " + mapVal);
}else {
System.out.println("User modified " + mapKey + " : " + mapVal);
System.out.println("User modified " + mapKey + " : ");// + mapVal);
}
}
}
@@ -119,4 +119,32 @@ public class FilePerMapKeyTest {
}
}
@Test
public void perfTest(){
//There are no entries in the map so null should be returned
FilePerKeyMap<String, String> map = new FilePerKeyMap<>("/tmp/filepermaptests");
//just in case it hasn't been cleared up last time
map.clear();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 2_000_000; i++) {
sb.append('x');
}
String value = sb.toString();
//warmup
for (int i = 0; i < 1000; i++) {
map.put("big file", value);
}
long time = System.currentTimeMillis();
int iterations = 50;
for (int i = 0; i < iterations; i++) {
map.put("big file", value);
}
System.out.println("Time to update "+ iterations + " iterations " + (System.currentTimeMillis()-time));
}
}