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