mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-26 06:46:10 +00:00
anoter small bench
This commit is contained in:
parent
a0cddf0745
commit
44d4474f95
@ -25,6 +25,7 @@ import org.elasticsearch.common.trove.StringIdentityHashingStrategy;
|
|||||||
import org.elasticsearch.common.trove.map.custom_hash.TObjectIntCustomHashMap;
|
import org.elasticsearch.common.trove.map.custom_hash.TObjectIntCustomHashMap;
|
||||||
import org.elasticsearch.common.trove.map.hash.THashMap;
|
import org.elasticsearch.common.trove.map.hash.THashMap;
|
||||||
import org.elasticsearch.common.trove.map.hash.TIntIntHashMap;
|
import org.elasticsearch.common.trove.map.hash.TIntIntHashMap;
|
||||||
|
import org.elasticsearch.common.trove.map.hash.TIntObjectHashMap;
|
||||||
import org.elasticsearch.common.trove.map.hash.TObjectIntHashMap;
|
import org.elasticsearch.common.trove.map.hash.TObjectIntHashMap;
|
||||||
import org.elasticsearch.common.trove.strategy.IdentityHashingStrategy;
|
import org.elasticsearch.common.trove.strategy.IdentityHashingStrategy;
|
||||||
import org.elasticsearch.common.unit.SizeValue;
|
import org.elasticsearch.common.unit.SizeValue;
|
||||||
@ -36,7 +37,7 @@ public class StringMapAdjustOrPutBenchmark {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
int NUMBER_OF_KEYS = (int) SizeValue.parseSizeValue("200k").singles();
|
int NUMBER_OF_KEYS = (int) SizeValue.parseSizeValue("20").singles();
|
||||||
int STRING_SIZE = 5;
|
int STRING_SIZE = 5;
|
||||||
long PUT_OPERATIONS = SizeValue.parseSizeValue("5m").singles();
|
long PUT_OPERATIONS = SizeValue.parseSizeValue("5m").singles();
|
||||||
long ITERATIONS = 10;
|
long ITERATIONS = 10;
|
||||||
@ -204,6 +205,33 @@ public class StringMapAdjustOrPutBenchmark {
|
|||||||
|
|
||||||
intMap.clear();
|
intMap.clear();
|
||||||
intMap = null;
|
intMap = null;
|
||||||
|
|
||||||
|
// now test with THashMap
|
||||||
|
stopWatch = new StopWatch().start();
|
||||||
|
TIntObjectHashMap<IntEntry> tIntMap = new TIntObjectHashMap<IntEntry>();
|
||||||
|
for (long iter = 0; iter < ITERATIONS; iter++) {
|
||||||
|
if (REUSE) {
|
||||||
|
tIntMap.clear();
|
||||||
|
} else {
|
||||||
|
tIntMap = new TIntObjectHashMap<IntEntry>();
|
||||||
|
}
|
||||||
|
for (long i = 0; i < PUT_OPERATIONS; i++) {
|
||||||
|
int key = iValues[(int) (i % NUMBER_OF_KEYS)];
|
||||||
|
IntEntry intEntry = tIntMap.get(key);
|
||||||
|
if (intEntry == null) {
|
||||||
|
intEntry = new IntEntry(key, 1);
|
||||||
|
tIntMap.put(key, intEntry);
|
||||||
|
} else {
|
||||||
|
intEntry.counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tIntMap.clear();
|
||||||
|
tIntMap = null;
|
||||||
|
|
||||||
|
stopWatch.stop();
|
||||||
|
System.out.println("TIntObjectHashMap: " + stopWatch.totalTime() + ", " + stopWatch.totalTime().millisFrac() / ITERATIONS + "ms");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -216,4 +244,14 @@ public class StringMapAdjustOrPutBenchmark {
|
|||||||
this.counter = counter;
|
this.counter = counter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class IntEntry {
|
||||||
|
int key;
|
||||||
|
int counter;
|
||||||
|
|
||||||
|
IntEntry(int key, int counter) {
|
||||||
|
this.key = key;
|
||||||
|
this.counter = counter;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user