Optimize VanillaChronicleMap.longSize(): don't acquire and close context for each segment, and make it atomic against concurrent map.close()

This commit is contained in:
leventov
2016-08-05 23:20:50 +07:00
parent c9bd74a29e
commit f9edc314bb
2 changed files with 12 additions and 11 deletions
@@ -715,17 +715,6 @@ public abstract class VanillaChronicleHash<K,
return (int) (sizeInBytes / chunkSize) + 1;
}
@Override
public final long longSize() {
long result = 0L;
for (int i = 0; i < segments(); i++) {
try (SC c = segmentContext(i)) {
result += c.size();
}
}
return result;
}
public final int size() {
long size = longSize();
return size > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) size;