Home / Class/ AbstractSslEngineThroughputBenchmark Class — netty Architecture

AbstractSslEngineThroughputBenchmark Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  5b7b2002_8479_d3f0_0499_a02b6ca51fae["AbstractSslEngineThroughputBenchmark"]
  b0837e58_8057_88dc_a0c7_b6b9b57f82bc["AbstractSslEngineThroughputBenchmark.java"]
  5b7b2002_8479_d3f0_0499_a02b6ca51fae -->|defined in| b0837e58_8057_88dc_a0c7_b6b9b57f82bc
  ca0d4da7_d9bd_c25e_cbea_8bf660776f54["setup()"]
  5b7b2002_8479_d3f0_0499_a02b6ca51fae -->|method| ca0d4da7_d9bd_c25e_cbea_8bf660776f54
  3028c295_8671_d2c5_01b0_0cc454467906["doSetup()"]
  5b7b2002_8479_d3f0_0499_a02b6ca51fae -->|method| 3028c295_8671_d2c5_01b0_0cc454467906
  d926974d_b0eb_d79b_877b_e592cf988d61["tearDown()"]
  5b7b2002_8479_d3f0_0499_a02b6ca51fae -->|method| d926974d_b0eb_d79b_877b_e592cf988d61
  84d05230_a9ef_5166_5e5a_0bd84093cb37["doTearDown()"]
  5b7b2002_8479_d3f0_0499_a02b6ca51fae -->|method| 84d05230_a9ef_5166_5e5a_0bd84093cb37
  849f6be1_815a_7e68_c70e_ebc290dced37["ByteBuffer()"]
  5b7b2002_8479_d3f0_0499_a02b6ca51fae -->|method| 849f6be1_815a_7e68_c70e_ebc290dced37

Relationship Graph

Source Code

microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineThroughputBenchmark.java lines 31–89

public abstract class AbstractSslEngineThroughputBenchmark extends AbstractSslEngineBenchmark {

    @Param({ "64", "128", "512", "1024", "4096" })
    public int messageSize;

    protected CleanableDirectBuffer cleanableWrapSrcBuffer;
    private CleanableDirectBuffer cleanableWrapDstBuffer;
    protected ByteBuffer wrapSrcBuffer;
    private ByteBuffer wrapDstBuffer;

    @Setup(Level.Iteration)
    public final void setup() throws Exception {
        ByteBufAllocator allocator = new PooledByteBufAllocator(true);
        initEngines(allocator);
        initHandshakeBuffers();

        cleanableWrapDstBuffer = allocateBuffer(clientEngine.getSession().getPacketBufferSize() << 2);
        cleanableWrapSrcBuffer = allocateBuffer(messageSize);
        wrapDstBuffer = cleanableWrapDstBuffer.buffer();
        wrapSrcBuffer = cleanableWrapDstBuffer.buffer();

        byte[] bytes = new byte[messageSize];
        ThreadLocalRandom.current().nextBytes(bytes);
        wrapSrcBuffer.put(bytes);
        wrapSrcBuffer.flip();

        // Complete the initial TLS handshake.
        if (!doHandshake()) {
            throw new IllegalStateException();
        }
        doSetup();
    }

    protected void doSetup() throws Exception { }

    @TearDown(Level.Iteration)
    public final void tearDown() throws Exception {
        destroyEngines();
        destroyHandshakeBuffers();
        cleanableWrapSrcBuffer.clean();
        cleanableWrapDstBuffer.clean();
        doTearDown();
    }

    protected void doTearDown() throws Exception { }

    protected final ByteBuffer doWrap(int numWraps) throws SSLException {
        wrapDstBuffer.clear();

        for (int i = 0; i < numWraps; ++i) {
            wrapSrcBuffer.position(0).limit(messageSize);

            SSLEngineResult wrapResult = clientEngine.wrap(wrapSrcBuffer, wrapDstBuffer);

            assert checkSslEngineResult(wrapResult, wrapSrcBuffer, wrapDstBuffer);
        }
        return wrapDstBuffer;
    }
}

Frequently Asked Questions

What is the AbstractSslEngineThroughputBenchmark class?
AbstractSslEngineThroughputBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineThroughputBenchmark.java.
Where is AbstractSslEngineThroughputBenchmark defined?
AbstractSslEngineThroughputBenchmark is defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineThroughputBenchmark.java at line 31.

Analyze Your Own Codebase

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

Try Supermodel Free