49 lines
1.1 KiB
Java
49 lines
1.1 KiB
Java
package com.baeldung;
|
|
|
|
import com.google.common.hash.HashFunction;
|
|
import com.google.common.hash.Hasher;
|
|
import com.google.common.hash.Hashing;
|
|
import org.openjdk.jmh.annotations.*;
|
|
|
|
import java.nio.charset.Charset;
|
|
|
|
public class BenchMark {
|
|
|
|
@State(Scope.Benchmark)
|
|
public static class ExecutionPlan {
|
|
|
|
@Param({ "100", "200", "300", "500", "1000" })
|
|
public int iterations;
|
|
|
|
public Hasher murmur3;
|
|
|
|
public String password = "4v3rys3kur3p455w0rd";
|
|
|
|
@Setup(Level.Invocation)
|
|
public void setUp() {
|
|
murmur3 = Hashing.murmur3_128().newHasher();
|
|
}
|
|
}
|
|
|
|
@Fork(value = 1, warmups = 1)
|
|
@Benchmark
|
|
@BenchmarkMode(Mode.Throughput)
|
|
@Warmup(iterations = 5)
|
|
public void benchMurmur3_128(ExecutionPlan plan) {
|
|
|
|
for (int i = plan.iterations; i > 0; i--) {
|
|
plan.murmur3.putString(plan.password, Charset.defaultCharset());
|
|
}
|
|
|
|
plan.murmur3.hash();
|
|
}
|
|
|
|
@Benchmark
|
|
@Fork(value = 1, warmups = 1)
|
|
@BenchmarkMode(Mode.Throughput)
|
|
public void init() {
|
|
// Do nothing
|
|
}
|
|
|
|
}
|