On Thu, 1 Aug 2024 21:51:04 GMT, Daniel Gredler <[email protected]> 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