[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