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
Source
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