On Sat, 13 Apr 2024 01:25:57 GMT, David Schlosnagle <d...@openjdk.org> wrote:

> Should the buffer size be a configurable constructor parameter? This would 
> allow consumers to adjust the buffer size to match their tradeoffs of memory 
> vs throughput based on workload & available resources, and provide a bit of 
> future-proofing as memory hierarchies expand over time (default 512 byte 
> buffer is a few decades old). I imagine many folks are already wrapping 
> `CipherInputStream` with a `BufferedInputStream` and this would allow folks 
> to adjust the buffer size in `CipherInputStream` and remove the extra wrapper 
> stream.
>

That would involve creating a new constructor and with that comes API change 
requirements.  If InputStream hasn't supported this feature in the past, I 
don't think CipherInputStream needs it.
 
> It would be nice to see a broader range of buffer sizes benchmarked across 
> architectures to understand the tradeoffs and differences in throughput. For 
> example, the default `InputStream` buffer size was increased from `8192` to 
> `16384` in JDK-8299336 / #11783 .
> 
> There are also a number of architecture specific tradeoffs related to cipher 
> and intrinsics available that consumers may want to factor into buffer sizing.

The larger the buffer the better in this case.   AES/GCM can take advantage of 
the bigger buffer on AVX512 systems as it has a 786 byte requirement.   I 
believe, all the others are blocksize.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/18763#issuecomment-2065332979

Reply via email to