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;
}
}
Defined In
Source
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