Home / Class/ ByteBufAccessBenchmark Class — netty Architecture

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() {

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