[OpenJDK 2D-Dev] Rendering images from PDF files slower in OpenJDK

Philip Race philip.race at oracle.com
Tue Oct 2 21:35:35 UTC 2018


I've spent some time examining what pdfbox is passing to ColorConvertOp
It is called about 10 or 11 times in this test with images typically 
1-2K in each dimension.
The input image is a Custom BufferedImage which uses an ICC_ColorSpace 
constructed
from a color profile file that is embedded in pdfbox which is an open 
source equivalent
of what Acrobat uses. It has a 4 component raster and is opaque

This is filtered into a 3 component standard INT_RGB ColorModel.

I've distilled this down into a small program which has an copy of the 
method
that is defined in pdfbox and is invoking the supposedly slow 
ColorConvertOp.

So I believe this is all exactly what is happening in pdfbox.

What I find is that it is actually much faster on JDK11 than JDK 8.

prrubuntu:~$ ~/jdk-11/bin/java CConv
4881
prrubuntu:~$ ~/jdk8u181/bin/java CConv
12529


I can't say why that would be but the results are clear.
So I am left to suppose that pdfbox really is doing something different 
in 8 vs 11.
Or that this not the real problem. What do others see ?

I've attached the program. The 1Mb color profile file can be got from 
the pdfbox sources.

-phil.


On 10/2/18, 9:35 AM, Laurent Bourgès wrote:
> Hi Daniel,
>
>
>     Let's not compare apples and oranges. What I can see it takes the
>     same route and behave similarly.
>
>
>  I agree, I did not take enough time to get accurate profiles, sorry.
>
>
>     If you look at
>     http://uhash.com/java_reg/Call_Tree_java_8.html
>     http://uhash.com/java_reg/Call_Tree_java_11.html
>
>     You can see that ConvertOp.filter takes 1.5s longer on Java 11.
>
>
> I confirm: 1.8s vs 300ms.
>
> Philip, do you know what could have change in this 2d area ?
>
> I imagine ColorConvertOp delegates to native code so color profile 
> (ICC) or hidpi support may have an impact here (or just compiler 
> options may be different) ...
>
> If needed, I could profile native code using oprofile / perf.
>
> Laurent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20181002/a5cdb624/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CConv.java
Type: text/x-java
Size: 1491 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20181002/a5cdb624/CConv.java>


More information about the 2d-dev mailing list