> BufferedWriter -> OutputStreamWriter -> StreamEncoder
> 
> In this call chain, BufferedWriter has a char[] buffer, and StreamEncoder has 
> a ByteBuffer. There are two layers of cache here, or the BufferedWriter layer 
> can be removed. And when charset is UTF8, if the content of write(String) is 
> LATIN1, a conversion from LATIN1 to UTF16 and then to LATIN1 will occur here.
> 
> LATIN1 -> UTF16 -> UTF8
> 
> We can improve BufferedWriter. When the parameter Writer instanceof 
> OutputStreamWriter is passed in, remove the cache and call it directly. In 
> addition, improve write(String) in StreamEncoder to avoid unnecessary 
> encoding conversion.

Shaojin Wen has updated the pull request incrementally with one additional 
commit since the last revision:

  Revert "BufferedWriter buffer use StringBuilder"
  
  This reverts commit da902ca0b0bd6acc003deb8ad1ca0d6485a29a27.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/26022/files
  - new: https://git.openjdk.org/jdk/pull/26022/files/da902ca0..fccd9678

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26022&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26022&range=04-05

  Stats: 81 lines in 6 files changed: 31 ins; 32 del; 18 mod
  Patch: https://git.openjdk.org/jdk/pull/26022.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26022/head:pull/26022

PR: https://git.openjdk.org/jdk/pull/26022

Reply via email to