We use heap byte buffers in SslTransportLayer. For netReadBuffer and netWriteBuffer, it means that the NIO layer has to copy to/from a native buffer before it can write/read to the socket. It would be good to test if switching to direct byte buffers improves performance. We can't be sure as the benefit of avoiding the copy could be offset by the specifics of the operations we perform on netReadBuffer, netWriteBuffer and appReadBuffer.
We should benchmark produce and consume performance and try a few combinations of direct/heap byte buffers for netReadBuffer, netWriteBuffer and appReadBuffer (the latter should probably remain as a heap byte buffer, but no harm in testing it too).