Home / Class/ QueryStringEncoderBenchmark Class — netty Architecture

QueryStringEncoderBenchmark Class — netty Architecture

Architecture documentation for the QueryStringEncoderBenchmark class in QueryStringEncoderBenchmark.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  5263319d_1de7_116b_4447_8de46529cd85["QueryStringEncoderBenchmark"]
  dc4cabbe_7f7c_64dd_def8_8ec62983d1e8["QueryStringEncoderBenchmark.java"]
  5263319d_1de7_116b_4447_8de46529cd85 -->|defined in| dc4cabbe_7f7c_64dd_def8_8ec62983d1e8
  ac998288_61b8_1569_cd3e_8044ecf26dcf["setUp()"]
  5263319d_1de7_116b_4447_8de46529cd85 -->|method| ac998288_61b8_1569_cd3e_8044ecf26dcf
  2b0b86ce_d855_8f02_6424_e12c500d2d2b["String()"]
  5263319d_1de7_116b_4447_8de46529cd85 -->|method| 2b0b86ce_d855_8f02_6424_e12c500d2d2b

Relationship Graph

Source Code

microbench/src/main/java/io/netty/handler/codec/http/QueryStringEncoderBenchmark.java lines 28–95

@Threads(1)
@Warmup(iterations = 3)
@Measurement(iterations = 3)
@OutputTimeUnit(TimeUnit.MICROSECONDS)
public class QueryStringEncoderBenchmark extends AbstractMicrobenchmark {
    private String shortAscii;
    private String shortUtf8;
    private String shortAsciiFirst;

    private String longAscii;
    private String longUtf8;
    private String longAsciiFirst;

    @Setup
    public void setUp() {
        // Avoid constant pool for strings since it's common for at least values to not be constant.
        shortAscii = new String("foo".toCharArray());
        shortUtf8 = new String("ほげほげ".toCharArray());
        shortAsciiFirst = shortAscii + shortUtf8;
        longAscii = repeat(shortAscii, 100);
        longUtf8 = repeat(shortUtf8, 100);
        longAsciiFirst = longAscii + longUtf8;
    }

    @Benchmark
    public String shortAscii() {
        return encode(shortAscii);
    }

    @Benchmark
    public String shortUtf8() {
        return encode(shortUtf8);
    }

    @Benchmark
    public String shortAsciiFirst() {
        return encode(shortAsciiFirst);
    }

    @Benchmark
    public String longAscii() {
        return encode(longAscii);
    }

    @Benchmark
    public String longUtf8() {
        return encode(longUtf8);
    }

    @Benchmark
    public String longAsciiFirst() {
        return encode(longAsciiFirst);
    }

    private static String encode(String s) {
        QueryStringEncoder encoder = new QueryStringEncoder("");
        encoder.addParam(s, s);
        return encoder.toString();
    }

    private static String repeat(String s, int num) {
        StringBuilder sb = new StringBuilder(num * s.length());
        for (int i = 0; i < num; i++) {
            sb.append(s);
        }
        return sb.toString();
    }
}

Frequently Asked Questions

What is the QueryStringEncoderBenchmark class?
QueryStringEncoderBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/handler/codec/http/QueryStringEncoderBenchmark.java.
Where is QueryStringEncoderBenchmark defined?
QueryStringEncoderBenchmark is defined in microbench/src/main/java/io/netty/handler/codec/http/QueryStringEncoderBenchmark.java at line 28.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free