in java/benchmark/src/main/java/org/apache/fury/benchmark/MapSuite.java [96:155]
private Object mapPut(MapSuite.MapState state, Object[] objects, Blackhole blackhole) {
switch (state.mapType) {
case JDK_IDENTITY_HASH_MAP:
state.jdkIdentityHashMap.clear();
for (int i = 0; i < objects.length; i++) {
if (state.jdkIdentityHashMap.containsKey(objects[i])) {
blackhole.consume(i);
} else {
state.jdkIdentityHashMap.put(objects[i], i);
blackhole.consume(i);
}
}
return state.jdkIdentityHashMap;
case FURY_IDENTITY_MAP:
state.identityMap.clear();
for (int i = 0; i < 500; i++) {
if (state.identityMap.get(objects[i]) == null) {
blackhole.consume(state.identityMap.put(objects[i], i));
}
}
return state.identityMap;
case FST_IDENTITY_ID_MAP:
state.identity2IdMap.clear();
for (int i = 0; i < 500; i++) {
blackhole.consume(state.identity2IdMap.putOrGet(objects[i], i));
}
return state.identity2IdMap;
case FURY_IDENTITY_OBJECT_INT_MAP:
state.identityObjectIntMap.clear();
for (int i = 0; i < 500; i++) {
blackhole.consume(state.identityObjectIntMap.putOrGet(objects[i], i));
}
return state.identityObjectIntMap;
case JDK_HASH_MAP:
state.hashMap.clear();
for (int i = 0; i < 500; i++) {
if (state.hashMap.get(objects[i]) == null) {
blackhole.consume(state.hashMap.put(objects[i], i));
}
}
return state.hashMap;
case FURY_OBJECT_MAP:
state.objectMap.clear();
for (int i = 0; i < 500; i++) {
if (state.objectMap.get(objects[i]) == null) {
blackhole.consume(state.objectMap.put(objects[i], i));
}
}
return state.objectMap;
case SWISS_TABLE:
state.swissTable = new SwissTable<>(500);
for (int i = 0; i < 500; i++) {
if (state.swissTable.get(objects[i]) == null) {
blackhole.consume(state.swissTable.put(objects[i], i));
}
}
return state.swissTable;
}
return null;
}