src/jmh/java/de/uniks/networkparser/test/CollectionTest_Small.java
package de.uniks.networkparser.test;
import java.util.Iterator;
import java.util.concurrent.TimeUnit;
import org.magicwerk.brownies.collections.primitive.IntObjGapList;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Level;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Param;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;
@State(Scope.Thread)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class CollectionTest_Small extends TestCase {
public int SIZE_SMALL=100;
@Param({"ArrayList","ArrayDeque","LinkedList","GapList","BigList","IntObjGapList","SimpleList","SpeedList","BasicEList","EObjectResolvingInteger","HashSet","LinkedHashSet","TreeSet","SimpleSet"})
protected String collectionName;
@Setup(Level.Iteration)
public void setup() {
collection = factory.getInstance(collectionName);
factory.setNewValue(collection, array);
}
@Setup(Level.Trial)
public void setupBefore() {
array=factory.getArray(SIZE_SMALL);
}
/*
* This is what you do with JMH.
*/
@Benchmark
@Warmup(iterations = 5, time = 1)
@Measurement(iterations = 5, time = 1)
@BenchmarkMode(Mode.AverageTime)
public void ContainsSmall() {
if(collection instanceof IntObjGapList) {
for(int i=0;i<array.length;i++) {
collection.contains(i);
}
} else {
for(int i=0;i<array.length;i++) {
collection.contains(array[i]);
}
}
}
/*
* This is what you do with JMH.
*/
@Benchmark
@Warmup(iterations = 5, time = 1)
@Measurement(iterations = 5, time = 1)
@BenchmarkMode(Mode.AverageTime)
public void RemoveSmall() {
if(collection instanceof IntObjGapList) {
for(int i=0;i<array.length;i++) {
collection.remove(i);
}
} else {
for(int i=0;i<array.length;i++) {
collection.remove(array[i]);
}
}
}
/*
* This is what you do with JMH.
*/
@Benchmark
@Warmup(iterations = 5, time = 1)
@Measurement(iterations = 5, time = 1)
@BenchmarkMode(Mode.AverageTime)
public void Iterator() {
for(Iterator<?> iterator = collection.iterator();iterator.hasNext();) {
iterator.next();
}
}
}