CompositeByteBufWriteOutBenchmark Class — netty Architecture
Architecture documentation for the CompositeByteBufWriteOutBenchmark class in CompositeByteBufWriteOutBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD c79b51b6_5774_48a2_56c0_7734c395523c["CompositeByteBufWriteOutBenchmark"] d3905ca8_e361_8ed3_1ee3_13b40b6d9b4b["CompositeByteBufWriteOutBenchmark.java"] c79b51b6_5774_48a2_56c0_7734c395523c -->|defined in| d3905ca8_e361_8ed3_1ee3_13b40b6d9b4b 3cdddbb9_85c8_bb88_c8d7_0424617908aa["jvmArgs()"] c79b51b6_5774_48a2_56c0_7734c395523c -->|method| 3cdddbb9_85c8_bb88_c8d7_0424617908aa 01fd20e0_ecf8_758b_a4bc_74eb918bc107["setup()"] c79b51b6_5774_48a2_56c0_7734c395523c -->|method| 01fd20e0_ecf8_758b_a4bc_74eb918bc107 d8643097_bd61_7638_5cc2_8fd6c8f3c09a["teardown()"] c79b51b6_5774_48a2_56c0_7734c395523c -->|method| d8643097_bd61_7638_5cc2_8fd6c8f3c09a 5d885259_bbf3_1208_3f4d_9c5fe6dc42d8["writeCBB()"] c79b51b6_5774_48a2_56c0_7734c395523c -->|method| 5d885259_bbf3_1208_3f4d_9c5fe6dc42d8 cb165fe6_dc5e_7b45_4721_d8ba02cfa232["writeFCBB()"] c79b51b6_5774_48a2_56c0_7734c395523c -->|method| cb165fe6_dc5e_7b45_4721_d8ba02cfa232 a1c07999_8d8e_f181_9363_06281426af81["makeSmallChunks()"] c79b51b6_5774_48a2_56c0_7734c395523c -->|method| a1c07999_8d8e_f181_9363_06281426af81 aff14b4b_296e_794a_94a9_00098b365e0a["makeLargeChunks()"] c79b51b6_5774_48a2_56c0_7734c395523c -->|method| aff14b4b_296e_794a_94a9_00098b365e0a
Relationship Graph
Source Code
microbench/src/main/java/io/netty/buffer/CompositeByteBufWriteOutBenchmark.java lines 33–120
@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
@Measurement(iterations = 12, time = 1, timeUnit = TimeUnit.SECONDS)
public class CompositeByteBufWriteOutBenchmark extends AbstractMicrobenchmark {
public enum ByteBufType {
SMALL_CHUNKS {
@Override
ByteBuf[] sourceBuffers(int length) {
return makeSmallChunks(length);
}
},
LARGE_CHUNKS {
@Override
ByteBuf[] sourceBuffers(int length) {
return makeLargeChunks(length);
}
};
abstract ByteBuf[] sourceBuffers(int length);
}
@Override
protected String[] jvmArgs() {
// Ensure we minimize the GC overhead by sizing the heap big enough.
return new String[] { "-XX:MaxDirectMemorySize=2g", "-Xmx4g", "-Xms4g", "-Xmn3g" };
}
@Param({
"64",
"1024",
"10240",
"102400",
"1024000"
})
public int size;
@Param
public ByteBufType bufferType;
private ByteBuf targetBuffer;
private ByteBuf[] sourceBufs;
@Setup
public void setup() {
targetBuffer = PooledByteBufAllocator.DEFAULT.directBuffer(size + 2048);
sourceBufs = bufferType.sourceBuffers(size);
}
@TearDown
public void teardown() {
targetBuffer.release();
}
@Benchmark
public int writeCBB() {
ByteBuf cbb = Unpooled.wrappedBuffer(Integer.MAX_VALUE, sourceBufs); // CompositeByteBuf
return targetBuffer.clear().writeBytes(cbb).readableBytes();
}
@Benchmark
public int writeFCBB() {
ByteBuf cbb = Unpooled.wrappedUnmodifiableBuffer(sourceBufs); // FastCompositeByteBuf
return targetBuffer.clear().writeBytes(cbb).readableBytes();
}
private static ByteBuf[] makeSmallChunks(int length) {
List<ByteBuf> buffers = new ArrayList<ByteBuf>(((length + 1) / 48) * 9);
for (int i = 0; i < length + 48; i += 48) {
for (int j = 4; j <= 12; j++) {
buffers.add(wrappedBuffer(new byte[j]));
}
}
return buffers.toArray(new ByteBuf[0]);
}
private static ByteBuf[] makeLargeChunks(int length) {
List<ByteBuf> buffers = new ArrayList<ByteBuf>((length + 1) / 768);
for (int i = 0; i < length + 1536; i += 1536) {
Source
Frequently Asked Questions
What is the CompositeByteBufWriteOutBenchmark class?
CompositeByteBufWriteOutBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/buffer/CompositeByteBufWriteOutBenchmark.java.
Where is CompositeByteBufWriteOutBenchmark defined?
CompositeByteBufWriteOutBenchmark is defined in microbench/src/main/java/io/netty/buffer/CompositeByteBufWriteOutBenchmark.java at line 33.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free