On Wed, 22 Mar 2023 10:12:26 GMT, Per Minborg <pminb...@openjdk.org> wrote:

>> This PR proposed to lazily initialize the scratch arrays only if/when needed.
>
> Per Minborg has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains five additional 
> commits since the last revision:
> 
>  - Merge branch 'dis-lazy' of https://github.com/minborg/jdk into dis-lazy
>  - Update src/java.base/share/classes/java/io/DataInputStream.java
>    
>    Co-authored-by: Eirik Bjorsnos <eir...@gmail.com>
>  - Merge branch 'master' into dis-lazy
>  - Remove redundant initilizers
>  - Lazily initialize (byte, char)arr in java.io.DataInputStream

I cannot explain why, but the changes suggested in this PR seem to introduce a 
small, but significant performance regression on the 
`DataInputStreamTest.readInt` benchmark:

Baseline:


Benchmark                    Mode  Cnt  Score   Error  Units
DataInputStreamTest.readInt  avgt   20  5.563 ± 0.037  us/op


PR:


Benchmark                    Mode  Cnt  Score   Error  Units
DataInputStreamTest.readInt  avgt   20  6.021 ± 0.020  us/op


The reason this puzzles me is that the `readInt` benchmark don't involve the 
UTF code paths at all. So why would it become slower, just because two fields 
are no longer initialized with the default arrays?

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

PR Comment: https://git.openjdk.org/jdk/pull/13121#issuecomment-1481235244

Reply via email to