mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
HCOLL-218 ReplicatedChronicleMapTest appears to use too much resources - I've looked at other tests as well and have attempted to ensure that close is called on every test, also prompting the GC to run after each test.
This commit is contained in:
@@ -17,85 +17,88 @@ public class DemoChronicleMapTest {
|
||||
File file = File.createTempFile("DummyOrders", ".test");
|
||||
file.deleteOnExit();
|
||||
int maxEntries = 1000;
|
||||
ChronicleMap<IntValue, DemoOrderVOInterface> map = ChronicleMapBuilder
|
||||
try (ChronicleMap<IntValue, DemoOrderVOInterface> map = ChronicleMapBuilder
|
||||
.of(IntValue.class, DemoOrderVOInterface.class)
|
||||
.putReturnsNull(true)
|
||||
.removeReturnsNull(true)
|
||||
.entries(maxEntries)
|
||||
.createPersistedTo(file);
|
||||
.createPersistedTo(file)) {
|
||||
|
||||
|
||||
IntValue key = DataValueClasses.newDirectInstance(IntValue.class);
|
||||
IntValue key = DataValueClasses.newDirectInstance(IntValue.class);
|
||||
|
||||
DemoOrderVOInterface value = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
DemoOrderVOInterface value2 = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
DemoOrderVOInterface value = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
DemoOrderVOInterface value2 = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
|
||||
// Initially populate the map
|
||||
for (int i = 0; i < maxEntries; i++) {
|
||||
key.setValue(i);
|
||||
// Initially populate the map
|
||||
for (int i = 0; i < maxEntries; i++) {
|
||||
key.setValue(i);
|
||||
|
||||
map.acquireUsing(key, value);
|
||||
map.acquireUsing(key, value);
|
||||
|
||||
value.setSymbol("IBM-" + i);
|
||||
value.addAtomicOrderQty(1000);
|
||||
value.setSymbol("IBM-" + i);
|
||||
value.addAtomicOrderQty(1000);
|
||||
|
||||
map.getUsing(key, value2);
|
||||
assertEquals("IBM-" + i, value.getSymbol());
|
||||
assertEquals(1000, value.getOrderQty(), 0.0);
|
||||
}
|
||||
map.getUsing(key, value2);
|
||||
assertEquals("IBM-" + i, value.getSymbol());
|
||||
assertEquals(1000, value.getOrderQty(), 0.0);
|
||||
}
|
||||
|
||||
for (Map.Entry<IntValue, DemoOrderVOInterface> entry : map.entrySet()) {
|
||||
for (Map.Entry<IntValue, DemoOrderVOInterface> entry : map.entrySet()) {
|
||||
|
||||
IntValue k = entry.getKey();
|
||||
DemoOrderVOInterface v = entry.getValue();
|
||||
IntValue k = entry.getKey();
|
||||
DemoOrderVOInterface v = entry.getValue();
|
||||
|
||||
System.out.println(String.format("Key %d %s", k.getValue(), v == null ? "<null>" : v.getSymbol()));
|
||||
assertNotNull(v);
|
||||
System.out.println(String.format("Key %d %s", k.getValue(), v == null ? "<null>" : v.getSymbol()));
|
||||
assertNotNull(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testMapLocked() throws Exception {
|
||||
File file = File.createTempFile("DummyOrders", ".test");
|
||||
file.deleteOnExit();
|
||||
int maxEntries = 1000;
|
||||
ChronicleMap<IntValue, DemoOrderVOInterface> map = ChronicleMapBuilder
|
||||
try (ChronicleMap<IntValue, DemoOrderVOInterface> map = ChronicleMapBuilder
|
||||
.of(IntValue.class, DemoOrderVOInterface.class)
|
||||
.putReturnsNull(true)
|
||||
.removeReturnsNull(true)
|
||||
.entries(maxEntries)
|
||||
.createPersistedTo(file);
|
||||
.createPersistedTo(file)) {
|
||||
|
||||
|
||||
IntValue key = DataValueClasses.newDirectInstance(IntValue.class);
|
||||
IntValue key = DataValueClasses.newDirectInstance(IntValue.class);
|
||||
|
||||
DemoOrderVOInterface value = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
DemoOrderVOInterface value2 = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
DemoOrderVOInterface value = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
DemoOrderVOInterface value2 = DataValueClasses.newDirectReference(DemoOrderVOInterface.class);
|
||||
|
||||
// Initially populate the map
|
||||
for (int i = 0; i < maxEntries; i++) {
|
||||
key.setValue(i);
|
||||
// Initially populate the map
|
||||
for (int i = 0; i < maxEntries; i++) {
|
||||
key.setValue(i);
|
||||
|
||||
try (WriteContext wc = map.acquireUsingLocked(key, value)) {
|
||||
value.setSymbol("IBM-" + i);
|
||||
value.addAtomicOrderQty(1000);
|
||||
try (WriteContext wc = map.acquireUsingLocked(key, value)) {
|
||||
value.setSymbol("IBM-" + i);
|
||||
value.addAtomicOrderQty(1000);
|
||||
}
|
||||
|
||||
try (ReadContext rc = map.getUsingLocked(key, value2)) {
|
||||
assertTrue(rc.present());
|
||||
assertEquals("IBM-" + i, value.getSymbol());
|
||||
assertEquals(1000, value.getOrderQty(), 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
try (ReadContext rc = map.getUsingLocked(key, value2)) {
|
||||
assertTrue(rc.present());
|
||||
assertEquals("IBM-" + i, value.getSymbol());
|
||||
assertEquals(1000, value.getOrderQty(), 0.0);
|
||||
for (Map.Entry<IntValue, DemoOrderVOInterface> entry : map.entrySet()) {
|
||||
|
||||
IntValue k = entry.getKey();
|
||||
DemoOrderVOInterface v = entry.getValue();
|
||||
|
||||
System.out.println(String.format("Key %d %s", k.getValue(), v == null ? "<null>" : v.getSymbol()));
|
||||
assertNotNull(v);
|
||||
}
|
||||
}
|
||||
|
||||
for (Map.Entry<IntValue, DemoOrderVOInterface> entry : map.entrySet()) {
|
||||
|
||||
IntValue k = entry.getKey();
|
||||
DemoOrderVOInterface v = entry.getValue();
|
||||
|
||||
System.out.println(String.format("Key %d %s", k.getValue(), v == null ? "<null>" : v.getSymbol()));
|
||||
assertNotNull(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user