At some point the `JPEGImageWriter` was optimized to reduce duplication / copying of rasters and data buffers (see `JDK-6266748`). However, `PNGImageWriter` never received a similar optimization, and is making unnecessary copies of raster and data buffers whenever PNG images are written.
Measurements: In a local test, `PNGImageWriter.write( )` and callees were initially showing up as an allocation hotspot (~400k objects / ~65 MB allocated), but after these optimizations I'm seeing much better numbers (~400 objects / ~740 KB allocated). ------------- Commit messages: - JDK-8337681: PNGImageWriter uses more memory than necessary Changes: https://git.openjdk.org/jdk/pull/20432/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20432&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8337681 Stats: 193 lines in 2 files changed: 188 ins; 1 del; 4 mod Patch: https://git.openjdk.org/jdk/pull/20432.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/20432/head:pull/20432 PR: https://git.openjdk.org/jdk/pull/20432