Paste your logs.

Built for Minecraft & Hytale

Unknown Log

57 lines
Raw
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.ArrayDeque;
import java.util.Random;
import java.util.concurrent.TimeUnit;
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.MICROSECONDS)
@State(Scope.Thread)
@Fork(1)
@Warmup(iterations = 3, time = 10)
@Measurement(iterations = 5, time = 10)
public class ListBenchmark {
@Param({"65536"})
private int capacity;
private EvictingRingList<Integer> ringList;
private ArrayDeque<Integer> arrayDeque;
private int[] indices;
@Setup
public void setup() {
ringList = new EvictingRingList<>(capacity);
arrayDeque = new ArrayDeque<>(capacity);
Random random = new Random(42);
indices = new int[1000];
for (int i = 0; i < 1000; i++) {
indices[i] = random.nextInt(capacity);
}
for (int i = 0; i < capacity; i++) {
ringList.add(i);
arrayDeque.add(i);
}
}
@Benchmark
public void testAdd(Blackhole bh) {
ringList.add(100);
bh.consume(ringList);
}
@Benchmark
public void testArrayDequeAddManualEvict(Blackhole bh) {
if (arrayDeque.size() >= capacity) {
arrayDeque.removeFirst();
}
arrayDeque.addLast(100);
bh.consume(arrayDeque);
}
}