ByteBufAccessBenchmark Class — netty Architecture
Architecture documentation for the ByteBufAccessBenchmark class in ByteBufAccessBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8["ByteBufAccessBenchmark"] 1b0a4394_fea1_4c21_77ba_cde3db4b1a55["ByteBufAccessBenchmark.java"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|defined in| 1b0a4394_fea1_4c21_77ba_cde3db4b1a55 73406b75_cdd8_6bc6_6d44_801140a1e944["setup()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 73406b75_cdd8_6bc6_6d44_801140a1e944 7416d08b_b4b9_9a53_9d57_0d99a0086e36["tearDown()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 7416d08b_b4b9_9a53_9d57_0d99a0086e36 0206e2bd_15f5_ce4d_d5c3_63d0bdb57532["setGetLong()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 0206e2bd_15f5_ce4d_d5c3_63d0bdb57532 14f0fe93_e48f_b985_0641_85654833933e["ByteBuf()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 14f0fe93_e48f_b985_0641_85654833933e a1442562_fede_9287_f6dc_930b3ab7433b["readBatch()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| a1442562_fede_9287_f6dc_930b3ab7433b 35b0a67b_abcd_349a_b63a_ff47b8f879ec["getByteBatch()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 35b0a67b_abcd_349a_b63a_ff47b8f879ec 417b7e12_c52a_f93d_7a55_ce4d57cdc6d5["setByteBatch()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 417b7e12_c52a_f93d_7a55_ce4d57cdc6d5 32a140b8_c440_069c_4220_104a4957a91c["readByteBatch()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 32a140b8_c440_069c_4220_104a4957a91c d3bda5c2_7f31_ed00_642f_ef9b903e9090["setBytes()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| d3bda5c2_7f31_ed00_642f_ef9b903e9090 17072f79_35af_a08b_23c6_c3fa8028ca45["getBytes()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 17072f79_35af_a08b_23c6_c3fa8028ca45 35f97240_b668_14ae_44c3_3a8a1b728077["setBytesConstantOffset()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 35f97240_b668_14ae_44c3_3a8a1b728077 d838318f_ce06_415b_589a_b57939775c3c["getBytesConstantOffset()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| d838318f_ce06_415b_589a_b57939775c3c 839145d2_2231_5b5c_24cb_6278a120e569["readBytes()"] bbe8e86b_057f_5aa0_71ed_6d8276f6f6f8 -->|method| 839145d2_2231_5b5c_24cb_6278a120e569
Relationship Graph
Source Code
microbench/src/main/java/io/netty/buffer/ByteBufAccessBenchmark.java lines 37–299
@Warmup(iterations = 10, time = 1)
@Measurement(iterations = 10, time = 1)
@Fork(2)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class ByteBufAccessBenchmark extends AbstractMicrobenchmark {
static final class NioFacade extends WrappedByteBuf {
private final ByteBuffer byteBuffer;
private final CleanableDirectBuffer cleanable;
NioFacade(CleanableDirectBuffer buffer) {
super(Unpooled.EMPTY_BUFFER);
byteBuffer = buffer.buffer();
cleanable = buffer;
}
@Override
public ByteBuf setLong(int index, long value) {
byteBuffer.putLong(index, value);
return this;
}
@Override
public long getLong(int index) {
return byteBuffer.getLong(index);
}
@Override
public byte readByte() {
return byteBuffer.get();
}
@Override
public ByteBuf touch() {
// hack since WrappedByteBuf.readerIndex(int) is final
byteBuffer.position(0);
return this;
}
@Override
public boolean release() {
cleanable.clean();
return true;
}
}
public enum ByteBufType {
UNSAFE {
@Override
ByteBuf newBuffer() {
return new UnpooledUnsafeDirectByteBuf(
UnpooledByteBufAllocator.DEFAULT, 64, 64).setIndex(0, 64);
}
},
DIRECT {
@Override
ByteBuf newBuffer() {
return new UnpooledDirectByteBuf(
UnpooledByteBufAllocator.DEFAULT, 64, 64).setIndex(0, 64);
}
},
UNSAFE_SLICE {
@Override
ByteBuf newBuffer() {
return UNSAFE.newBuffer().slice(16, 48);
}
},
UNSAFE_RETAINED_SLICE {
@Override
ByteBuf newBuffer() {
ByteBuf pooledBuffer = PooledByteBufAllocator.DEFAULT.directBuffer(64, 64)
.setIndex(0, 64);
if (!(pooledBuffer instanceof PooledUnsafeDirectByteBuf)) {
throw new IllegalStateException("Expected PooledUnsafeDirectByteBuf");
}
try {
return pooledBuffer.retainedSlice(16, 48);
} finally {
pooledBuffer.release();
}
}
},
HEAP {
@Override
ByteBuf newBuffer() {
Source
Frequently Asked Questions
What is the ByteBufAccessBenchmark class?
ByteBufAccessBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/buffer/ByteBufAccessBenchmark.java.
Where is ByteBufAccessBenchmark defined?
ByteBufAccessBenchmark is defined in microbench/src/main/java/io/netty/buffer/ByteBufAccessBenchmark.java at line 37.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free