> 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: bug fix for encodeUTF8 & remove unused computeSizeUTF8 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/26022/files - new: https://git.openjdk.org/jdk/pull/26022/files/f4f97c26..0e0c3aee Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=26022&range=03 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26022&range=02-03 Stats: 32 lines in 2 files changed: 2 ins; 23 del; 7 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