On Thu, 1 Aug 2024 21:51:04 GMT, Daniel Gredler <d...@openjdk.org> wrote:
>> 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). > > Daniel Gredler has updated the pull request incrementally with two additional > commits since the last revision: > > - JDK-8337681: add tests for TYPE_4BYTE_ABGR > - JDK-8337681: add tests for TYPE_INT_RGB src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java line 924: > 922: for (int row = minY + yOffset; row < minY + height; row += > ySkip) { > 923: Raster ras; > 924: if (image instanceof BufferedImage bi) { Do we really need to run these two blocks in the loop for each iteration? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/20432#discussion_r1742404140