Home / Class/ ByteBufUtilBenchmark Class — netty Architecture

ByteBufUtilBenchmark Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  794c8128_05d5_9b68_be2d_470f54884c21["ByteBufUtilBenchmark"]
  9f036575_2f97_d2d8_fd9e_04dd9b113256["ByteBufUtilBenchmark.java"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|defined in| 9f036575_2f97_d2d8_fd9e_04dd9b113256
  5ba46e0e_d916_0e3c_d091_198c653f2ba5["setup()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| 5ba46e0e_d916_0e3c_d091_198c653f2ba5
  db789a40_d6b4_2e01_0496_9628b780812c["tearDown()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| db789a40_d6b4_2e01_0496_9628b780812c
  cc007e0e_8f11_9a12_8243_15cbe9ba0a0e["writeAsciiStringViaArray()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| cc007e0e_8f11_9a12_8243_15cbe9ba0a0e
  e00a5e5b_9570_9b7f_379e_6dca95febdf4["writeAsciiStringViaArrayWrapped()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| e00a5e5b_9570_9b7f_379e_6dca95febdf4
  b464fd18_6061_f5f3_1ab6_f705824d8731["writeAsciiString()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| b464fd18_6061_f5f3_1ab6_f705824d8731
  cf391b23_9fde_18c7_c0ca_433d50c58b9b["writeAsciiStringWrapped()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| cf391b23_9fde_18c7_c0ca_433d50c58b9b
  5c26b7be_6d8c_e85f_13db_084ddf8d2ed5["writeAsciiViaArray()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| 5c26b7be_6d8c_e85f_13db_084ddf8d2ed5
  ae1785b7_070d_bc88_19a9_b4cbf3c93ee4["writeAsciiViaArrayWrapped()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| ae1785b7_070d_bc88_19a9_b4cbf3c93ee4
  1059e15b_e396_351c_cbbd_f1ae7b90453a["writeAscii()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| 1059e15b_e396_351c_cbbd_f1ae7b90453a
  49dfd11d_7728_772f_14ca_7ec26b63801b["writeAsciiWrapped()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| 49dfd11d_7728_772f_14ca_7ec26b63801b
  7fd84730_5d87_988c_b5b5_08b09f4338c3["writeUtf8StringViaArray()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| 7fd84730_5d87_988c_b5b5_08b09f4338c3
  d7eb3b7a_4b4b_4a02_e3bc_dd97c57a788b["writeUtf8StringViaArrayWrapped()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| d7eb3b7a_4b4b_4a02_e3bc_dd97c57a788b
  c045754b_257c_c80d_97af_06e5d08f9bb8["writeUtf8String()"]
  794c8128_05d5_9b68_be2d_470f54884c21 -->|method| c045754b_257c_c80d_97af_06e5d08f9bb8

Relationship Graph

Source Code

microbench/src/main/java/io/netty/microbench/buffer/ByteBufUtilBenchmark.java lines 33–200

@State(Scope.Benchmark)
@Warmup(iterations = 5)
@Measurement(iterations = 10)
public class
    ByteBufUtilBenchmark extends AbstractMicrobenchmark {

    @Param({
            "true",
            "false",
    })
    private boolean direct;
    @Param({
            "8",
            "16",
            "64",
            "128",
    })
    private int length;
    private ByteBuf buffer;
    private ByteBuf wrapped;
    private ByteBuf asciiBuffer;
    private ByteBuf utf8Buffer;

    private StringBuilder asciiSequence;
    private String ascii;

    private StringBuilder utf8Sequence;
    private String utf8;

    @Setup
    public void setup() {
        // Use buffer sizes that will also allow to write UTF-8 without grow the buffer
        final int maxBytes = ByteBufUtil.utf8MaxBytes(length);
        buffer = direct? Unpooled.directBuffer(maxBytes) : Unpooled.buffer(maxBytes);
        wrapped = Unpooled.unreleasableBuffer(direct? Unpooled.directBuffer(maxBytes) : Unpooled.buffer(maxBytes));
        asciiSequence = new StringBuilder(length);
        for (int i = 0; i < length; i++) {
            asciiSequence.append('a');
        }
        ascii = asciiSequence.toString();

        // Generate some mixed UTF-8 String for benchmark
        utf8Sequence = new StringBuilder(length);
        char[] chars = "Some UTF-8 like äÄ∏ŒŒ".toCharArray();
        for (int i = 0; i < length; i++) {
            utf8Sequence.append(chars[i % chars.length]);
        }
        utf8 = utf8Sequence.toString();
        asciiSequence = utf8Sequence;

        asciiBuffer = Unpooled.copiedBuffer(ascii, CharsetUtil.US_ASCII);
        utf8Buffer = Unpooled.copiedBuffer(utf8, CharsetUtil.UTF_8);
    }

    @TearDown
    public void tearDown() {
        buffer.release();
        wrapped.release();
        asciiBuffer.release();
        utf8Buffer.release();
    }

    @Benchmark
    public void writeAsciiStringViaArray() {
        buffer.resetWriterIndex();
        buffer.writeBytes(ascii.getBytes(CharsetUtil.US_ASCII));
    }

    @Benchmark
    public void writeAsciiStringViaArrayWrapped() {
        wrapped.resetWriterIndex();
        wrapped.writeBytes(ascii.getBytes(CharsetUtil.US_ASCII));
    }

    @Benchmark
    public void writeAsciiString() {
        buffer.resetWriterIndex();
        ByteBufUtil.writeAscii(buffer, ascii);
    }

    @Benchmark

Frequently Asked Questions

What is the ByteBufUtilBenchmark class?
ByteBufUtilBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/buffer/ByteBufUtilBenchmark.java.
Where is ByteBufUtilBenchmark defined?
ByteBufUtilBenchmark is defined in microbench/src/main/java/io/netty/microbench/buffer/ByteBufUtilBenchmark.java at line 33.

Analyze Your Own Codebase

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

Try Supermodel Free