From 1774a4d3311085f93cae44122368d0b2c4808f50 Mon Sep 17 00:00:00 2001 From: Peter Lawrey Date: Mon, 10 Nov 2014 15:07:08 +0000 Subject: [PATCH] Tweek segment sizes again. --- .../map/AbstractChronicleMapBuilder.java | 36 +++++++++---------- .../chronicle/map/ChronicleMapTest.java | 3 +- .../chronicle/map/EntryCountMapTest.java | 36 +++++++++---------- 3 files changed, 36 insertions(+), 39 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/map/AbstractChronicleMapBuilder.java b/src/main/java/net/openhft/chronicle/map/AbstractChronicleMapBuilder.java index a89942f33..e0a689148 100644 --- a/src/main/java/net/openhft/chronicle/map/AbstractChronicleMapBuilder.java +++ b/src/main/java/net/openhft/chronicle/map/AbstractChronicleMapBuilder.java @@ -372,10 +372,8 @@ public abstract class AbstractChronicleMapBuilder 100 ? procs / 2 : procs; + int threads = procs * 3; ExecutorService es = Executors.newFixedThreadPool(procs); for (int runs : new int[]{10, 50, 250, 500, 1000, 2500}) { // JAVA 8 produces more garbage than previous versions for internal work. @@ -585,6 +585,7 @@ public class ChronicleMapTest { OffHeapUpdatableChronicleMapBuilder builder = OffHeapUpdatableChronicleMapBuilder .of(CharSequence.class, LongValue.class) .entries(entries) + .actualSegments(8 * 1024) .entryAndValueAlignment(OF_8_BYTES) .entrySize(24); diff --git a/src/test/java/net/openhft/chronicle/map/EntryCountMapTest.java b/src/test/java/net/openhft/chronicle/map/EntryCountMapTest.java index d3cad018a..742366961 100644 --- a/src/test/java/net/openhft/chronicle/map/EntryCountMapTest.java +++ b/src/test/java/net/openhft/chronicle/map/EntryCountMapTest.java @@ -53,7 +53,7 @@ public class EntryCountMapTest { throws IOException { OffHeapUpdatableChronicleMapBuilder mapBuilder = OffHeapUpdatableChronicleMapBuilder.of(CharSequence.class, LongValue.class) .entries(entries) - .minSegments(segments) + .actualSegments(segments) .entrySize(entrySize) .entryAndValueAlignment(alignment); return mapBuilder.createPersistedTo(getPersistenceFile()); @@ -103,33 +103,33 @@ public class EntryCountMapTest { testEntriesMaxSize(s, 2000, 3100, i); testEntriesMaxSize(s, 4000, 5100, i); testEntriesMaxSize(s, 5000, 7100, i); - testEntriesMaxSize(s, 8000, 10200, i); - testEntriesMaxSize(s, 12000, 16000, i); - testEntriesMaxSize(s, 16000, 21300, i); + testEntriesMaxSize(s, 8000, 11000, i); + testEntriesMaxSize(s, 12000, 17000, i); + testEntriesMaxSize(s, 16000, 22000, i); s = 32; testEntriesMaxSize(s, 2000, 3900, i); testEntriesMaxSize(s, 4000, 5900, i); testEntriesMaxSize(s, 5000, 7900, i); testEntriesMaxSize(s, 8000, 12000, i); - testEntriesMaxSize(s, 12000, 15900, i); - testEntriesMaxSize(s, 16000, 21300, i); - testEntriesMaxSize(s, 32000, 42200, i); + testEntriesMaxSize(s, 12000, 17000, i); + testEntriesMaxSize(s, 16000, 23000, i); + testEntriesMaxSize(s, 32000, 46000, i); s = 64; testEntriesMaxSize(s, 5000, 7550, i); testEntriesMaxSize(s, 8000, 11400, i); - testEntriesMaxSize(s, 12000, 16000, i); - testEntriesMaxSize(s, 16000, 22000, i); - testEntriesMaxSize(s, 32000, 43000, i); - testEntriesMaxSize(s, 40000, 54000, i); + testEntriesMaxSize(s, 12000, 18000, i); + testEntriesMaxSize(s, 16000, 24000, i); + testEntriesMaxSize(s, 32000, 47000, i); + testEntriesMaxSize(s, 40000, 60000, i); s = 128; - testEntriesMaxSize(s, 16000, 23000, i); - testEntriesMaxSize(s, 32000, 44200, i); - testEntriesMaxSize(s, 40000, 56000, i); - testEntriesMaxSize(s, 64000, 92000, i); - testEntriesMaxSize(s, 129000, 190000, i); + testEntriesMaxSize(s, 16000, 24000, i); + testEntriesMaxSize(s, 32000, 50000, i); + testEntriesMaxSize(s, 40000, 62000, i); + testEntriesMaxSize(s, 64000, 98000, i); + testEntriesMaxSize(s, 129000, 204000, i); s = 256; - testEntriesMaxSize(s, 64000, 92000, i); - testEntriesMaxSize(s, 129000, 192000, i); + testEntriesMaxSize(s, 64000, 100000, i); + testEntriesMaxSize(s, 129000, 213000, i); } // hyperbolic average gives more weight to small numbers. System.out.printf("Score: %.2f%n", scoreCount / score);