HpackEncoderBenchmark Class — netty Architecture
Architecture documentation for the HpackEncoderBenchmark class in HpackEncoderBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 995fbf9b_9fb0_36cd_ba95_60f0c2f27893["HpackEncoderBenchmark"] 1b990c2b_27fd_de90_7960_2e5806807012["HpackEncoderBenchmark.java"] 995fbf9b_9fb0_36cd_ba95_60f0c2f27893 -->|defined in| 1b990c2b_27fd_de90_7960_2e5806807012 39571027_3942_8e99_3985_7219ec2b5521["setup()"] 995fbf9b_9fb0_36cd_ba95_60f0c2f27893 -->|method| 39571027_3942_8e99_3985_7219ec2b5521 03dd25bb_e6db_9173_7242_0410d068ce7f["tearDown()"] 995fbf9b_9fb0_36cd_ba95_60f0c2f27893 -->|method| 03dd25bb_e6db_9173_7242_0410d068ce7f 1358acbe_955a_eaa9_a7ab_63ea501c4242["encode()"] 995fbf9b_9fb0_36cd_ba95_60f0c2f27893 -->|method| 1358acbe_955a_eaa9_a7ab_63ea501c4242
Relationship Graph
Source Code
microbench/src/main/java/io/netty/handler/codec/http2/HpackEncoderBenchmark.java lines 56–111
@Fork(1)
@Threads(1)
@State(Scope.Benchmark)
@Warmup(iterations = 5)
@Measurement(iterations = 5)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class HpackEncoderBenchmark extends AbstractMicrobenchmark {
@Param
public HpackHeadersSize size;
@Param({ "true", "false" })
public boolean sensitive;
@Param({ "true", "false" })
public boolean duplicates;
@Param({ "true", "false" })
public boolean limitToAscii;
private Http2Headers http2Headers;
private ByteBuf output;
private Http2HeadersEncoder.SensitivityDetector sensitivityDetector;
@Setup(Level.Trial)
public void setup() {
http2Headers = HpackBenchmarkUtil.http2Headers(size, limitToAscii);
if (duplicates) {
int size = http2Headers.size();
if (size > 0) {
Iterator<Map.Entry<CharSequence, CharSequence>> itr = http2Headers.iterator();
Map.Entry<CharSequence, CharSequence> entry = itr.next();
http2Headers.clear();
for (int i = 0; i < size; ++i) {
http2Headers.add(entry.getKey(), entry.getValue());
}
}
}
output = size.newOutBuffer();
sensitivityDetector = sensitive ? Http2HeadersEncoder.ALWAYS_SENSITIVE : Http2HeadersEncoder.NEVER_SENSITIVE;
}
@TearDown(Level.Trial)
public void tearDown() {
output.release();
}
@Benchmark
@BenchmarkMode(Mode.AverageTime)
public void encode(Blackhole bh) throws Exception {
HpackEncoder hpackEncoder = HpackUtilBenchmark.newTestEncoder();
output.clear();
hpackEncoder.encodeHeaders(3 /*randomly chosen*/, output, http2Headers, sensitivityDetector);
bh.consume(output);
}
}
Source
Frequently Asked Questions
What is the HpackEncoderBenchmark class?
HpackEncoderBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/handler/codec/http2/HpackEncoderBenchmark.java.
Where is HpackEncoderBenchmark defined?
HpackEncoderBenchmark is defined in microbench/src/main/java/io/netty/handler/codec/http2/HpackEncoderBenchmark.java at line 56.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free