[ 
https://issues.apache.org/jira/browse/IO-786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoit Tellier updated IO-786:
------------------------------
    Attachment: Screenshot from 2023-01-30 09-06-03.png

> Unsynchronized BufferedInputStream
> ----------------------------------
>
>                 Key: IO-786
>                 URL: https://issues.apache.org/jira/browse/IO-786
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Streams/Writers
>         Environment: JRE 19, linux
>            Reporter: Benoit Tellier
>            Priority: Major
>         Attachments: Screenshot from 2023-01-30 09-06-03.png
>
>
> As part of development of Apache James I had the unpleasant surprise to 
> notice that, on modern JVMs, the cost of synchronization skyrocketed (JRE 19).
> In one part of the code, we do need to find the exact location of email 
> header end, and for this needs to read an InputStream byte by byte. We of 
> course buffer the inputStream in order to limit potential blocking calls. 
> Profiling showed 73% of the reading time is spent synchronizing on the 
> BufferedInputStream. Thus I am keen on having an 
> UnsynchronizedBufferedInputStream & friends at hand. See attached screenshot.
>  => This is reported upstream see https://bugs.openjdk.org/browse/JDK-4097272 
> . This was disregarded in lower Java version but I hope it "could" be 
> reconsidered.
>  => While I can duplicate the class in Apache James source code and remove 
> synchronised keywords, this sounds a generic enough to fit in commons-io.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to