ReadOnlyHttp2HeadersBenchmark Class — netty Architecture
Architecture documentation for the ReadOnlyHttp2HeadersBenchmark class in ReadOnlyHttp2HeadersBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 83d0ced7_4100_8aad_a42f_eef34910db2d["ReadOnlyHttp2HeadersBenchmark"] b9a245c4_ff90_f557_bfa3_5e4c2f43420a["ReadOnlyHttp2HeadersBenchmark.java"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|defined in| b9a245c4_ff90_f557_bfa3_5e4c2f43420a 498e503c_c036_e105_d2af_dee55ab6cea2["setUp()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| 498e503c_c036_e105_d2af_dee55ab6cea2 f6db23c0_bb93_327d_7a97_abf8acb5cfae["defaultTrailers()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| f6db23c0_bb93_327d_7a97_abf8acb5cfae fc6f6410_182f_7715_a44e_80f597ef0608["readOnlyTrailers()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| fc6f6410_182f_7715_a44e_80f597ef0608 519a1b00_bd69_1364_1b96_3bbad6d18a7b["defaultClientHeaders()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| 519a1b00_bd69_1364_1b96_3bbad6d18a7b d192d3af_6712_5913_7570_8d65340256d6["readOnlyClientHeaders()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| d192d3af_6712_5913_7570_8d65340256d6 6c64339b_9990_8f49_c35e_7a26c9983f90["defaultServerHeaders()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| 6c64339b_9990_8f49_c35e_7a26c9983f90 98d518ca_2336_a42b_9180_199fc728b2a5["readOnlyServerHeaders()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| 98d518ca_2336_a42b_9180_199fc728b2a5 5ebb10b4_1922_8fb1_7dab_ae0ee27555fa["iterate()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| 5ebb10b4_1922_8fb1_7dab_ae0ee27555fa dd7e5d9c_8378_bf0c_fbbf_043effadd94b["buildPairs()"] 83d0ced7_4100_8aad_a42f_eef34910db2d -->|method| dd7e5d9c_8378_bf0c_fbbf_043effadd94b
Relationship Graph
Source Code
microbench/src/main/java/io/netty/microbench/headers/ReadOnlyHttp2HeadersBenchmark.java lines 44–138
@Threads(1)
@State(Scope.Benchmark)
@Fork(2)
@Warmup(iterations = 10)
@Measurement(iterations = 10)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class ReadOnlyHttp2HeadersBenchmark extends AbstractMicrobenchmark {
private AsciiString[] headerNames;
private AsciiString[] headerValues;
@Param({ "1", "5", "10", "20" })
public int headerCount;
private final AsciiString path = new AsciiString("/BigDynamicPayload");
private final AsciiString authority = new AsciiString("io.netty");
@Setup
public void setUp() throws Exception {
headerNames = new AsciiString[headerCount];
headerValues = new AsciiString[headerCount];
for (int i = 0; i < headerCount; ++i) {
headerNames[i] = new AsciiString("key-" + i);
headerValues[i] = new AsciiString(UUID.randomUUID().toString());
}
}
@Benchmark
@BenchmarkMode(Mode.AverageTime)
public void defaultTrailers(Blackhole bh) {
Http2Headers headers = new DefaultHttp2Headers(false);
for (int i = 0; i < headerCount; ++i) {
headers.add(headerNames[i], headerValues[i]);
}
iterate(headers, bh);
}
@Benchmark
@BenchmarkMode(Mode.AverageTime)
public void readOnlyTrailers(Blackhole bh) {
iterate(ReadOnlyHttp2Headers.trailers(false, buildPairs()), bh);
}
@Benchmark
@BenchmarkMode(Mode.AverageTime)
public void defaultClientHeaders(Blackhole bh) {
Http2Headers headers = new DefaultHttp2Headers(false);
for (int i = 0; i < headerCount; ++i) {
headers.add(headerNames[i], headerValues[i]);
}
headers.method(HttpMethod.POST.asciiName());
headers.scheme(HttpScheme.HTTPS.name());
headers.path(path);
headers.authority(authority);
iterate(headers, bh);
}
@Benchmark
@BenchmarkMode(Mode.AverageTime)
public void readOnlyClientHeaders(Blackhole bh) {
iterate(ReadOnlyHttp2Headers.clientHeaders(false, HttpMethod.POST.asciiName(), path,
HttpScheme.HTTPS.name(), authority, buildPairs()), bh);
}
@Benchmark
@BenchmarkMode(Mode.AverageTime)
public void defaultServerHeaders(Blackhole bh) {
Http2Headers headers = new DefaultHttp2Headers(false);
for (int i = 0; i < headerCount; ++i) {
headers.add(headerNames[i], headerValues[i]);
}
headers.status(HttpResponseStatus.OK.codeAsText());
iterate(headers, bh);
}
@Benchmark
@BenchmarkMode(Mode.AverageTime)
public void readOnlyServerHeaders(Blackhole bh) {
iterate(ReadOnlyHttp2Headers.serverHeaders(false, HttpResponseStatus.OK.codeAsText(), buildPairs()), bh);
}
private static void iterate(Http2Headers headers, Blackhole bh) {
Source
Frequently Asked Questions
What is the ReadOnlyHttp2HeadersBenchmark class?
ReadOnlyHttp2HeadersBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/headers/ReadOnlyHttp2HeadersBenchmark.java.
Where is ReadOnlyHttp2HeadersBenchmark defined?
ReadOnlyHttp2HeadersBenchmark is defined in microbench/src/main/java/io/netty/microbench/headers/ReadOnlyHttp2HeadersBenchmark.java at line 44.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free