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

Reply via email to