mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Reduced unnecessary and wrong ChronicleMapBuilder.entrySize() usage
This commit is contained in:
@@ -103,17 +103,12 @@ public class ChronicleMapTest {
|
||||
}
|
||||
|
||||
private static ChronicleMap<CharSequence, LongValue> getSharedMap(
|
||||
long entries, int segments, int entrySize) throws IOException {
|
||||
return getSharedMap(entries, segments, entrySize, OF_4_BYTES);
|
||||
}
|
||||
|
||||
private static ChronicleMap<CharSequence, LongValue> getSharedMap(
|
||||
long entries, int segments, int entrySize, Alignment alignment)
|
||||
long entries, int segments, Alignment alignment, int keySize)
|
||||
throws IOException {
|
||||
return ChronicleMapBuilder.of(CharSequence.class, LongValue.class)
|
||||
.entries(entries)
|
||||
.minSegments(segments)
|
||||
.entrySize(entrySize)
|
||||
.keySize(keySize)
|
||||
.entryAndValueAlignment(alignment)
|
||||
.create();
|
||||
}
|
||||
@@ -204,7 +199,7 @@ public class ChronicleMapTest {
|
||||
|
||||
int count = 300;
|
||||
final ChronicleMap<Object, Object> map = ChronicleMapBuilder.of(Object.class, Object.class)
|
||||
.entrySize(count)
|
||||
.entries(count)
|
||||
.minSegments(2).create();
|
||||
|
||||
for (int i = 1; i < count; i++) {
|
||||
@@ -414,10 +409,13 @@ public class ChronicleMapTest {
|
||||
|
||||
@Test
|
||||
public void testAcquireWithNullContainer() throws Exception {
|
||||
ChronicleMap<CharSequence, LongValue> map = getSharedMap(10 * 1000, 128, 24);
|
||||
ChronicleMap<CharSequence, LongValue> map =
|
||||
ChronicleMapBuilder.of(CharSequence.class, LongValue.class)
|
||||
.entries(1000)
|
||||
.entryAndValueAlignment(OF_4_BYTES)
|
||||
.create();
|
||||
map.acquireUsing("key", new LongValue$$Native());
|
||||
assertEquals(0, map.acquireUsing("key", null).getValue());
|
||||
|
||||
map.close();
|
||||
}
|
||||
|
||||
@@ -454,7 +452,11 @@ public class ChronicleMapTest {
|
||||
|
||||
@Test
|
||||
public void testGetWithNullContainer() throws Exception {
|
||||
ChronicleMap<CharSequence, LongValue> map = getSharedMap(10 * 1000, 128, 24);
|
||||
ChronicleMap<CharSequence, LongValue> map =
|
||||
ChronicleMapBuilder.of(CharSequence.class, LongValue.class)
|
||||
.entries(10)
|
||||
.entryAndValueAlignment(OF_4_BYTES)
|
||||
.create();
|
||||
map.acquireUsing("key", new LongValue$$Native());
|
||||
assertEquals(0, map.getUsing("key", null).getValue());
|
||||
|
||||
@@ -463,7 +465,11 @@ public class ChronicleMapTest {
|
||||
|
||||
@Test
|
||||
public void testGetWithoutAcquireFirst() throws Exception {
|
||||
ChronicleMap<CharSequence, LongValue> map = getSharedMap(10, 1, 24);
|
||||
ChronicleMap<CharSequence, LongValue> map =
|
||||
ChronicleMapBuilder.of(CharSequence.class, LongValue.class)
|
||||
.entries(10)
|
||||
.entryAndValueAlignment(OF_4_BYTES)
|
||||
.create();
|
||||
assertNull(map.getUsing("key", DataValueClasses.newDirectReference(LongValue.class)));
|
||||
|
||||
map.close();
|
||||
@@ -485,9 +491,9 @@ public class ChronicleMapTest {
|
||||
public void testAcquireAndGet() throws IOException, ClassNotFoundException,
|
||||
IllegalAccessException, InstantiationException {
|
||||
int entries = 3/*00 * 1000*/;
|
||||
testAcquireAndGet(getSharedMap(entries, 1, 24, OF_4_BYTES), entries);
|
||||
testAcquireAndGet(getSharedMap(entries, 1, 24, NO_ALIGNMENT), entries);
|
||||
testAcquireAndGet(getSharedMap(entries, 1, 24, OF_8_BYTES), entries);
|
||||
testAcquireAndGet(getSharedMap(entries, 1, OF_4_BYTES, 10), entries);
|
||||
testAcquireAndGet(getSharedMap(entries, 1, NO_ALIGNMENT, 10), entries);
|
||||
testAcquireAndGet(getSharedMap(entries, 1, OF_8_BYTES, 10), entries);
|
||||
}
|
||||
|
||||
public void testAcquireAndGet(ChronicleMap<CharSequence, LongValue> map, int entries)
|
||||
@@ -526,9 +532,9 @@ public class ChronicleMapTest {
|
||||
@Test
|
||||
public void testAcquireFromMultipleThreads() throws Exception {
|
||||
int entries = 1000 * 1000;
|
||||
testAcquireFromMultipleThreads(getSharedMap(entries, 128, 24, NO_ALIGNMENT));
|
||||
testAcquireFromMultipleThreads(getSharedMap(entries, 128, 24, OF_4_BYTES));
|
||||
testAcquireFromMultipleThreads(getSharedMap(entries, 128, 24, OF_8_BYTES));
|
||||
testAcquireFromMultipleThreads(getSharedMap(entries, 128, NO_ALIGNMENT, 10));
|
||||
testAcquireFromMultipleThreads(getSharedMap(entries, 128, OF_4_BYTES, 10));
|
||||
testAcquireFromMultipleThreads(getSharedMap(entries, 128, OF_8_BYTES, 10));
|
||||
}
|
||||
|
||||
public void testAcquireFromMultipleThreads(ChronicleMap<CharSequence, LongValue> map)
|
||||
@@ -582,7 +588,7 @@ public class ChronicleMapTest {
|
||||
.entries(entries)
|
||||
.actualSegments(8 * 1024)
|
||||
.entryAndValueAlignment(OF_8_BYTES)
|
||||
.entrySize(24);
|
||||
.keySize(13);
|
||||
|
||||
File tmpFile = File.createTempFile("testAcquirePerf", ".deleteme");
|
||||
tmpFile.deleteOnExit();
|
||||
@@ -603,8 +609,10 @@ public class ChronicleMapTest {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
long next = 50 * 1000 * 1000;
|
||||
// use a factor to give up to 10 digit numbers.
|
||||
int factor = Math.max(1, (int) ((10 * 1000 * 1000 * 1000L - 1) / entries));
|
||||
for (long j = t % independence; j < entries + independence - 1; j += independence) {
|
||||
int factor = Math.max(1,
|
||||
(int) ((10 * 1000 * 1000 * 1000L - 1) / entries));
|
||||
for (long j = t % independence; j < entries + independence - 1;
|
||||
j += independence) {
|
||||
sb.setLength(0);
|
||||
sb.append("us:");
|
||||
sb.append(j * factor);
|
||||
@@ -625,7 +633,8 @@ public class ChronicleMapTest {
|
||||
future.get();
|
||||
}
|
||||
long time = System.currentTimeMillis() - start;
|
||||
System.out.printf("Throughput %.1f M ops/sec%n", threads * entries / independence / 1000.0 / time);
|
||||
System.out.printf("Throughput %.1f M ops/sec%n",
|
||||
threads * entries / independence / 1000.0 / time);
|
||||
}
|
||||
printStatus();
|
||||
File file = map.file();
|
||||
@@ -654,7 +663,7 @@ public class ChronicleMapTest {
|
||||
.entries(entries)
|
||||
.entryAndValueAlignment(OF_8_BYTES)
|
||||
.actualSegments(256)
|
||||
.entrySize(24);
|
||||
.keySize(13);
|
||||
|
||||
File tmpFile = File.createTempFile("testAcquirePerf", ".deleteme");
|
||||
tmpFile.deleteOnExit();
|
||||
@@ -676,8 +685,10 @@ public class ChronicleMapTest {
|
||||
long next = 50 * 1000 * 1000;
|
||||
Random rand = new Random();
|
||||
// use a factor to give up to 10 digit numbers.
|
||||
int factor = Math.max(1, (int) ((10 * 1000 * 1000 * 1000L - 1) / entries));
|
||||
for (long j = t % independence; j < entries + independence - 1; j += independence) {
|
||||
int factor = Math.max(1,
|
||||
(int) ((10 * 1000 * 1000 * 1000L - 1) / entries));
|
||||
for (long j = t % independence; j < entries + independence - 1;
|
||||
j += independence) {
|
||||
sb.setLength(0);
|
||||
sb.append("us:");
|
||||
sb.append(j * factor);
|
||||
@@ -707,7 +718,8 @@ public class ChronicleMapTest {
|
||||
future.get();
|
||||
}
|
||||
long time = System.currentTimeMillis() - start;
|
||||
System.out.printf("Throughput %.1f M ops/sec%n", threads * entries / independence / 1000.0 / time);
|
||||
System.out.printf("Throughput %.1f M ops/sec%n",
|
||||
threads * entries / independence / 1000.0 / time);
|
||||
}
|
||||
printStatus();
|
||||
File file = map.file();
|
||||
@@ -853,14 +865,16 @@ public class ChronicleMapTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPutAndRemove() throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException {
|
||||
public void testPutAndRemove() throws IOException, ClassNotFoundException,
|
||||
IllegalAccessException, InstantiationException {
|
||||
String TMP = System.getProperty("java.io.tmpdir");
|
||||
int entries = 100 * 1000;
|
||||
ChronicleMap<CharSequence, CharSequence> map =
|
||||
ChronicleMapBuilder.of(CharSequence.class, CharSequence.class)
|
||||
.entries(entries)
|
||||
.minSegments(16)
|
||||
.entrySize(32)
|
||||
.keySize("user:".length() + 6)
|
||||
.valueSize("value:".length() + 6)
|
||||
.putReturnsNull(true)
|
||||
.removeReturnsNull(true).create();
|
||||
StringBuilder key = new StringBuilder();
|
||||
@@ -1412,7 +1426,7 @@ public class ChronicleMapTest {
|
||||
final ChronicleMapBuilder<CharSequence, LongValue> builder = ChronicleMapBuilder
|
||||
.of(CharSequence.class, LongValue.class)
|
||||
.entries(1000)
|
||||
.entrySize(16);
|
||||
.keySize("x".length());
|
||||
|
||||
final ChronicleMap<CharSequence, LongValue> map = builder.create();
|
||||
|
||||
@@ -1425,7 +1439,7 @@ public class ChronicleMapTest {
|
||||
ChronicleMapBuilder<CharSequence, LongValue> builder = ChronicleMapBuilder
|
||||
.of(CharSequence.class, LongValue.class)
|
||||
.entries(1000)
|
||||
.entrySize(16);
|
||||
.keySize("one".length());
|
||||
|
||||
final ChronicleMap<CharSequence, LongValue> map = builder.create();
|
||||
|
||||
@@ -1483,8 +1497,7 @@ public class ChronicleMapTest {
|
||||
ChronicleMapBuilder<CharSequence, String> builder = ChronicleMapBuilder
|
||||
.of(CharSequence.class, String.class)
|
||||
.entries(1000)
|
||||
.defaultValue("")
|
||||
.entrySize(16);
|
||||
.defaultValue("");
|
||||
|
||||
try (final ChronicleMap<CharSequence, String> map = builder.create()) {
|
||||
// this will add the entry
|
||||
@@ -1500,7 +1513,8 @@ public class ChronicleMapTest {
|
||||
try (final ChronicleMap<CharSequence, CharSequence> map = ChronicleMapBuilder
|
||||
.of(CharSequence.class, CharSequence.class)
|
||||
.entries(1000)
|
||||
.entrySize(40)
|
||||
.keySize("one".length())
|
||||
.valueSize("Hello World".length())
|
||||
.defaultValue("")
|
||||
.create()) {
|
||||
StringBuilder value = new StringBuilder();
|
||||
@@ -1518,7 +1532,7 @@ public class ChronicleMapTest {
|
||||
ChronicleMapBuilder<CharSequence, LongValue> builder = ChronicleMapBuilder
|
||||
.of(CharSequence.class, LongValue.class)
|
||||
.entries(1000)
|
||||
.entrySize(40);
|
||||
.keySize("one".length());
|
||||
File tmpFile = File.createTempFile("testAcquireUsingLocked", ".deleteme");
|
||||
tmpFile.deleteOnExit();
|
||||
final ChronicleMap<CharSequence, LongValue> map = builder.createPersistedTo(tmpFile);
|
||||
|
||||
Reference in New Issue
Block a user