mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Add a perf test for acquireUsingLocked.
This commit is contained in:
@@ -115,7 +115,7 @@ public abstract class AbstractChronicleMapBuilder<K, V,
|
||||
private int valueSize = 0;
|
||||
private V sampleValue;
|
||||
private int entrySize = 0;
|
||||
private Alignment alignment;
|
||||
private Alignment alignment = null;
|
||||
private long entries = 1 << 20; // 1 million by default
|
||||
private long lockTimeOut = 2000;
|
||||
private TimeUnit lockTimeOutUnit = TimeUnit.MILLISECONDS;
|
||||
@@ -138,10 +138,9 @@ public abstract class AbstractChronicleMapBuilder<K, V,
|
||||
private StatelessBuilder statelessBuilder;
|
||||
private File file;
|
||||
|
||||
AbstractChronicleMapBuilder(Class<K> keyClass, Class<V> valueClass, Alignment alignment) {
|
||||
AbstractChronicleMapBuilder(Class<K> keyClass, Class<V> valueClass) {
|
||||
keyBuilder = new SerializationBuilder<K>(keyClass, SerializationBuilder.Role.KEY);
|
||||
valueBuilder = new SerializationBuilder<V>(valueClass, SerializationBuilder.Role.VALUE);
|
||||
this.alignment = alignment;
|
||||
}
|
||||
|
||||
protected static boolean offHeapReference(Class valueClass) {
|
||||
@@ -318,7 +317,9 @@ public abstract class AbstractChronicleMapBuilder<K, V,
|
||||
}
|
||||
|
||||
Alignment entryAndValueAlignment() {
|
||||
return alignment;
|
||||
if (alignment != null)
|
||||
return alignment;
|
||||
return offHeapReference(valueBuilder.eClass) ? Alignment.OF_4_BYTES : Alignment.NO_ALIGNMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -73,11 +73,7 @@ public final class ChronicleMapBuilder<K, V>
|
||||
}
|
||||
|
||||
ChronicleMapBuilder(Class<K> keyClass, Class<V> valueClass) {
|
||||
super(keyClass, valueClass, getAlignmentFor(valueClass));
|
||||
}
|
||||
|
||||
private static <V> Alignment getAlignmentFor(Class<V> valueClass) {
|
||||
return offHeapReference(valueClass) ? Alignment.OF_4_BYTES : Alignment.NO_ALIGNMENT;
|
||||
super(keyClass, valueClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,7 +37,7 @@ public final class OffHeapUpdatableChronicleMapBuilder<K, V>
|
||||
}
|
||||
|
||||
OffHeapUpdatableChronicleMapBuilder(Class<K> keyClass, Class<V> valueClass) {
|
||||
super(keyClass, valueClass, Alignment.OF_4_BYTES);
|
||||
super(keyClass, valueClass);
|
||||
prepareValueBytesOnAcquire(new ZeroOutValueBytes<K, V>(valueSize()));
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ public final class OffHeapUpdatableChronicleMapBuilder<K, V>
|
||||
* alignment. I. e. if you set {@code entrySize(20)} and {@link Alignment#OF_8_BYTES}, actual
|
||||
* entry size will be 24 (20 aligned to 8 bytes).
|
||||
*
|
||||
* <p>Default is {@link Alignment#NO_ALIGNMENT}.
|
||||
* <p>Default is {@link Alignment#OF_4_BYTES} for Byteable values.
|
||||
*
|
||||
* @param alignment the new alignment of the maps constructed by this builder
|
||||
* @return this {@code ChronicleMapBuilder} back
|
||||
|
||||
Reference in New Issue
Block a user