Home / Class/ AbstractReferenceCountedByteBufBenchmark Class — netty Architecture

AbstractReferenceCountedByteBufBenchmark Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  c73e6530_b172_be35_2afd_34cfdf2d0ebe["AbstractReferenceCountedByteBufBenchmark"]
  4ec4ee51_711a_bd3d_ed02_465f6532a1c4["AbstractReferenceCountedByteBufBenchmark.java"]
  c73e6530_b172_be35_2afd_34cfdf2d0ebe -->|defined in| 4ec4ee51_711a_bd3d_ed02_465f6532a1c4
  c5a9f98a_c413_c2ee_0b0f_fcf7eb4abbc2["setUp()"]
  c73e6530_b172_be35_2afd_34cfdf2d0ebe -->|method| c5a9f98a_c413_c2ee_0b0f_fcf7eb4abbc2
  b9a20383_aa1d_105e_17af_a0c81521d02c["tearDown()"]
  c73e6530_b172_be35_2afd_34cfdf2d0ebe -->|method| b9a20383_aa1d_105e_17af_a0c81521d02c
  d13cd508_23cc_7f96_7fa2_006e72c20193["retainReleaseUncontended()"]
  c73e6530_b172_be35_2afd_34cfdf2d0ebe -->|method| d13cd508_23cc_7f96_7fa2_006e72c20193
  26b24a9c_93ba_f069_83e4_dc7ab5b2f96c["delay()"]
  c73e6530_b172_be35_2afd_34cfdf2d0ebe -->|method| 26b24a9c_93ba_f069_83e4_dc7ab5b2f96c
  4010640e_aa0b_5112_be0d_12096aa994a3["createUseAndRelease()"]
  c73e6530_b172_be35_2afd_34cfdf2d0ebe -->|method| 4010640e_aa0b_5112_be0d_12096aa994a3
  f0568ed7_080f_a65c_1f4b_de6cd6dd8975["retainReleaseContended()"]
  c73e6530_b172_be35_2afd_34cfdf2d0ebe -->|method| f0568ed7_080f_a65c_1f4b_de6cd6dd8975

Relationship Graph

Source Code

microbench/src/main/java/io/netty/buffer/AbstractReferenceCountedByteBufBenchmark.java lines 34–94

@State(Scope.Benchmark)
public class AbstractReferenceCountedByteBufBenchmark extends AbstractMicrobenchmark {

    @Param({
            "0",
            "1",
            "10",
            "100",
            "1000",
            "10000",
    })
    public int delay;

    AbstractReferenceCountedByteBuf buf;

    @Setup
    public void setUp() {
        buf = (AbstractReferenceCountedByteBuf) Unpooled.buffer(1);
    }

    @TearDown
    public void tearDown() {
        buf.release();
    }

    @Benchmark
    @BenchmarkMode(Mode.AverageTime)
    @OutputTimeUnit(TimeUnit.NANOSECONDS)
    public boolean retainReleaseUncontended() {
        buf.retain();
        delay();
        return buf.release();
    }

    private void delay() {
        if (delay > 0) {
            Blackhole.consumeCPU(delay);
        }
    }

    @Benchmark
    @BenchmarkMode(Mode.AverageTime)
    @OutputTimeUnit(TimeUnit.NANOSECONDS)
    @CompilerControl(CompilerControl.Mode.DONT_INLINE)
    public boolean createUseAndRelease(Blackhole useBuffer) {
        ByteBuf unpooled = Unpooled.buffer(1);
        useBuffer.consume(unpooled);
        delay();
        return unpooled.release();
    }

    @Benchmark
    @BenchmarkMode(Mode.AverageTime)
    @OutputTimeUnit(TimeUnit.NANOSECONDS)
    @GroupThreads(4)
    public boolean retainReleaseContended() {
        buf.retain();
        delay();
        return buf.release();
    }
}

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free