Home / Class/ HeapByteBufBenchmark Class — netty Architecture

HeapByteBufBenchmark Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  0cd74505_43a2_f13d_0adf_1a6a92869999["HeapByteBufBenchmark"]
  760022e3_2df3_427c_6ab4_85a08a0f125d["HeapByteBufBenchmark.java"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|defined in| 760022e3_2df3_427c_6ab4_85a08a0f125d
  087319b4_cb88_3cbb_2b81_2fd05589f093["ByteBuf()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 087319b4_cb88_3cbb_2b81_2fd05589f093
  1a0f75cb_4cee_dd05_3a60_5cc0c0e22902["setup()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 1a0f75cb_4cee_dd05_3a60_5cc0c0e22902
  f13204a8_b011_c720_d240_a04b24ae7f26["destroy()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| f13204a8_b011_c720_d240_a04b24ae7f26
  f41046f8_ebc4_871e_0c8b_0347ab45535e["getByteUnsafe()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| f41046f8_ebc4_871e_0c8b_0347ab45535e
  70b58419_6d45_5a2b_8b85_98a0ad59d2df["getByte()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 70b58419_6d45_5a2b_8b85_98a0ad59d2df
  dbafdc09_eb2e_3bc9_1d69_71355b9d30a5["getShortUnsafe()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| dbafdc09_eb2e_3bc9_1d69_71355b9d30a5
  93356aea_ffff_7d6c_01f0_95b4d19ad3c0["getShort()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 93356aea_ffff_7d6c_01f0_95b4d19ad3c0
  3a63fcfc_acb4_099a_e4d1_37cc92539d33["getMediumUnsafe()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 3a63fcfc_acb4_099a_e4d1_37cc92539d33
  134beca3_bdf5_af0a_8902_0928628099a0["getMedium()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 134beca3_bdf5_af0a_8902_0928628099a0
  e846f36c_e7e6_2c16_28f5_c6312679c233["getIntUnsafe()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| e846f36c_e7e6_2c16_28f5_c6312679c233
  4e28c6e5_a2cf_0489_efad_f852be6da983["getInt()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 4e28c6e5_a2cf_0489_efad_f852be6da983
  0f3d730a_39aa_31c7_843f_7bf5eaf624e4["getLongUnsafe()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 0f3d730a_39aa_31c7_843f_7bf5eaf624e4
  0a544c18_b1ad_b5ca_60bd_966ffcceb151["getLong()"]
  0cd74505_43a2_f13d_0adf_1a6a92869999 -->|method| 0a544c18_b1ad_b5ca_60bd_966ffcceb151

Relationship Graph

Source Code

microbench/src/main/java/io/netty/microbench/buffer/HeapByteBufBenchmark.java lines 28–111

public class HeapByteBufBenchmark extends AbstractMicrobenchmark {

    @Param({
            "true",
            "false",
    })
    public String checkBounds;

    private ByteBuf unsafeBuffer;
    private ByteBuf buffer;

    private static ByteBuf newBuffer(String classname) throws Exception {
        // Using reflection to workaround package-private implementations.
        Class<?> clazz = Class.forName(classname);
        Constructor<?> constructor = clazz.getDeclaredConstructor(ByteBufAllocator.class, int.class, int.class);
        constructor.setAccessible(true);
        return (ByteBuf) constructor.newInstance(ByteBufAllocator.DEFAULT, 8, Integer.MAX_VALUE);
    }

    @Setup
    public void setup() throws Exception {
        System.setProperty("io.netty.buffer.bytebuf.checkBounds", checkBounds);
        unsafeBuffer = newBuffer("io.netty.buffer.UnpooledUnsafeHeapByteBuf");
        buffer = newBuffer("io.netty.buffer.UnpooledHeapByteBuf");
        unsafeBuffer.writeLong(1L);
        buffer.writeLong(1L);
    }

    @TearDown
    public void destroy() {
        unsafeBuffer.release();
        buffer.release();
    }

    @Benchmark
    public byte getByteUnsafe() {
        return unsafeBuffer.getByte(0);
    }

    @Benchmark
    public short getByte() {
        return buffer.getByte(0);
    }

    @Benchmark
    public short getShortUnsafe() {
        return unsafeBuffer.getShort(0);
    }

    @Benchmark
    public short getShort() {
        return buffer.getShort(0);
    }

    @Benchmark
    public int getMediumUnsafe() {
        return unsafeBuffer.getMedium(0);
    }

    @Benchmark
    public int getMedium() {
        return buffer.getMedium(0);
    }

    @Benchmark
    public int getIntUnsafe() {
        return unsafeBuffer.getInt(0);
    }

    @Benchmark
    public int getInt() {
        return buffer.getInt(0);
    }

    @Benchmark
    public long getLongUnsafe() {
        return unsafeBuffer.getLong(0);
    }

    @Benchmark
    public long getLong() {

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free