On Mon, 30 Jun 2025 19:38:59 GMT, Brian Burkhalter <b...@openjdk.org> wrote:
>> Replaces the implementation `readAllCharsAsString().lines().toList()` with >> reading into a temporary `char` array which is then processed to detect line >> terminators and copy non-terminating characters into strings which are added >> to the list. > > Brian Burkhalter has updated the pull request incrementally with one > additional commit since the last revision: > > 8358533: Sherman's version + decrease initial buffer size src/java.base/share/classes/java/io/Reader.java line 482: > 480: if (pos == limit) { > 481: int len = limit - start; > 482: if (len >= cb.length) { Observation: this algorithm will get less efficient as the line length approaches cb.length. Starting at sb.length/2 It will take 2 reads for every line and will not resize the buffer. I think resizing the buffer when the line length exceeds cb.length/2 will be more efficient (cpu wise). The decoding of the bytes to chars and the setup of the decoder is the expensive part. For most typical line length distributions it would not make a difference but would improve the performance of the outliners. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/25863#discussion_r2176233023