HpackDecoderBenchmark Class — netty Architecture
Architecture documentation for the HpackDecoderBenchmark class in HpackDecoderBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD dbf1ed73_3c87_ce6c_0048_5c86ce6f91ff["HpackDecoderBenchmark"] a796315d_2e66_c1b5_6c45_31e92e821da9["HpackDecoderBenchmark.java"] dbf1ed73_3c87_ce6c_0048_5c86ce6f91ff -->|defined in| a796315d_2e66_c1b5_6c45_31e92e821da9 e2e6cd01_35b1_51a6_dae0_0c8d1d68716c["setup()"] dbf1ed73_3c87_ce6c_0048_5c86ce6f91ff -->|method| e2e6cd01_35b1_51a6_dae0_0c8d1d68716c 53d4fe69_f711_9885_b514_b35f7c228d2e["teardown()"] dbf1ed73_3c87_ce6c_0048_5c86ce6f91ff -->|method| 53d4fe69_f711_9885_b514_b35f7c228d2e 97f1784f_fbff_c6aa_9829_be0c0fcf2446["decode()"] dbf1ed73_3c87_ce6c_0048_5c86ce6f91ff -->|method| 97f1784f_fbff_c6aa_9829_be0c0fcf2446 b9b7431e_5ad1_3ae0_eec4_bdfeff8bcbb4["getSerializedHeaders()"] dbf1ed73_3c87_ce6c_0048_5c86ce6f91ff -->|method| b9b7431e_5ad1_3ae0_eec4_bdfeff8bcbb4
Relationship Graph
Source Code
microbench/src/main/java/io/netty/handler/codec/http2/HpackDecoderBenchmark.java lines 48–101
public class HpackDecoderBenchmark extends AbstractMicrobenchmark {
@Param
public HpackHeadersSize size;
@Param({ "true", "false" })
public boolean sensitive;
@Param({ "true", "false" })
public boolean limitToAscii;
private ByteBuf input;
@Setup(Level.Trial)
public void setup() throws Http2Exception {
input = wrappedBuffer(getSerializedHeaders(http2Headers(size, limitToAscii), sensitive));
}
@TearDown(Level.Trial)
public void teardown() {
input.release();
}
@Benchmark
@BenchmarkMode(Mode.Throughput)
public void decode(final Blackhole bh) throws Http2Exception {
HpackDecoder hpackDecoder = new HpackDecoder(Integer.MAX_VALUE);
@SuppressWarnings("unchecked")
Http2Headers headers =
new DefaultHttp2Headers() {
@Override
public Http2Headers add(CharSequence name, CharSequence value) {
bh.consume(sensitive);
return this;
}
};
hpackDecoder.decode(0, input.duplicate(), headers, true);
}
private byte[] getSerializedHeaders(Http2Headers headers, boolean sensitive) throws Http2Exception {
HpackEncoder hpackEncoder = HpackUtilBenchmark.newTestEncoder();
ByteBuf out = size.newOutBuffer();
try {
hpackEncoder.encodeHeaders(3 /* randomly chosen */, out, headers,
sensitive ? Http2HeadersEncoder.ALWAYS_SENSITIVE
: Http2HeadersEncoder.NEVER_SENSITIVE);
byte[] bytes = new byte[out.readableBytes()];
out.readBytes(bytes);
return bytes;
} finally {
out.release();
}
}
}
Source
Frequently Asked Questions
What is the HpackDecoderBenchmark class?
HpackDecoderBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/handler/codec/http2/HpackDecoderBenchmark.java.
Where is HpackDecoderBenchmark defined?
HpackDecoderBenchmark is defined in microbench/src/main/java/io/netty/handler/codec/http2/HpackDecoderBenchmark.java at line 48.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free