[OpenJDK 2D-Dev] Rendering images from PDF files slower in OpenJDK
Phil Race
philip.race at oracle.com
Mon Oct 1 21:10:27 UTC 2018
Thanks for the profiles.
I can't tell - from the profile - or even from [just looking at] the pdfbox
source what might be causing it to behave differently or why
it adds up to so much slower.
"Full stack" debugging - meaning building pdfbox seems to be necessary.
So I think that it might be best that if the pdfbox devs. do the initial
evaluation.
Else it will wait a long time ...
-phil.
On 10/01/2018 10:52 AM, Laurent Bourgès wrote:
> Hi,
> I quickly run your test with Oracle JDK8 and OpenJDK 11:
> Here are the CPU profiles:
> http://cr.openjdk.java.net/~lbourges/pdfbox_profiles/
> <http://cr.openjdk.java.net/%7Elbourges/pdfbox_profiles/>
>
> On JDK8:
> java version "1.8.0_192-ea"
> Java(TM) SE Runtime Environment (build 1.8.0_192-ea-b04)
> Java HotSpot(TM) 64-Bit Server VM (build 25.192-b04, mixed mode)
> Rendered 1 page in 3375ms
>
> 777 ms
> org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.getRGBImage
> 17.8% - 766 ms
> org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.from8bit
> 12.6% - 541 ms
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.createInputStream
> 12.6% - 541 ms
> org.apache.pdfbox.pdmodel.common.PDStream.createInputStream
>
> On JDK11:
>
> openjdk version "11" 2018-09-25
> OpenJDK Runtime Environment 18.9 (build 11+28)
> OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
> Rendered 1 page in 4789ms
>
> 2,059 ms
> org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.getRGBImage
> 36.0% - 2,054 ms
> org.apache.pdfbox.pdmodel.graphics.image.SampledImageReader.from8bit
> 26.2% - 1,495 ms
> org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK.toRGBImage
> 26.2% - 1,495 ms
> org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK.toRGBImageAWT
> 26.2% - 1,495 ms
> org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace.toRGBImageAWT
> 26.0% - 1,481 ms java.awt.image.ColorConvertOp.filter
>
> Actually, pdfbox's SampledImageReader.from8bit() do not use the same
> path between JDK8 and JDK11... and ColorConvertOp costs 25% (in my
> case)
>
> Cheers,
> Laurent
>
> Le jeu. 27 sept. 2018 à 09:19, Laurent Bourgès
> <bourges.laurent at gmail.com <mailto:bourges.laurent at gmail.com>> a écrit :
>
> Hi,
>
> FYI I will run profilers on this test case to compare Oracle JDK8
> vs OpenJDK11...
> Will then give you my analysis.
>
> Cheers,
> Laurent
>
> Le mer. 26 sept. 2018 à 23:51, Philip Race <philip.race at oracle.com
> <mailto:philip.race at oracle.com>> a écrit :
>
> Interesting and I assume that it was somewhat less in JD8u ?
> Off the top of my head that is one thing that didn't change in
> any big way since JDK 8u.
>
> Perhaps something has changed so that it is now [considered]
> needed whereas before
> it was not? So did it go from zero percent to 29% or from 10%
> to 29% ?
>
> But even that doesn't on it own account for everything.
> 29% of 8 seconds would be about 2.5 seconds and doesn't
> explain going from
> < 3 seconds to 8 seconds .. we are still missing at least 2.5
> seconds ..
>
>
> -phil.
>
> On 9/26/18, 11:08 AM, Daniel Persson wrote:
>> Hi Phil
>>
>> What the PDFBox team told me it could have something to do
>> with color mapping.
>>
>> And my quick profiling shows that the code spends 29% of the
>> time inside of java.awt.image.ColorConvertOp.filter on java 11
>>
>> But I'll open a issue.
>>
>> Best regards
>> Daniel
>>
>> On Wed, Sep 26, 2018, 19:33 Phil Race <philip.race at oracle.com
>> <mailto:philip.race at oracle.com>> wrote:
>>
>> Multiple pieces are changing across these releases.
>>
>> Is it the JPEG writing ? Is it freetype vs t2k (font
>> performance)
>> is it harfbuzz vs icu (text layout), is it marlin vs ductus
>> (rasterization) ?
>>
>> So it is very hard to say with any certainty what the
>> cause of the
>> difference is .. or
>> why 10 got so much better than 9 .. even if still not
>> back to JDK 8.
>>
>> Please file a bug at java.com <http://java.com>.
>>
>> -phil.
>>
>> On 09/25/2018 10:42 PM, Daniel Persson wrote:
>> > Hi everyone,
>> >
>> > We render a lot of images with PDFBox with Java 1.8.0
>> and we want to
>> > upgrade to the current OpenJDK 11 but sadly we see some
>> performance
>> > degradation switching over to OpenJDK. Anyone have a
>> suggestion to
>> > remedy this issue, or can explain why it is slower?
>> >
>> > Using the PDFBox app current release downloadable from
>> >
>> http://www-us.apache.org/dist/pdfbox/2.0.11/pdfbox-app-2.0.11.jar
>> >
>> > Running the command
>> > java -jar pdfbox-app-2.0.11.jar PDFToImage -time test.pdf
>> >
>> > We see the following result
>> >
>> > ---------------------------------------------------------
>> > java version "1.8.0_181"
>> > Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
>> > Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13,
>> mixed mode)
>> > Rendered 1 page in 2762ms
>> > ---------------------------------------------------------
>> > openjdk version "9.0.4"
>> > OpenJDK Runtime Environment (build 9.0.4+11)
>> > OpenJDK 64-Bit Server VM (build 9.0.4+11, mixed mode)
>> > Rendered 1 page in 8034ms
>> > ---------------------------------------------------------
>> > openjdk version "10.0.2" 2018-07-17
>> > OpenJDK Runtime Environment 18.3 (build 10.0.2+13)
>> > OpenJDK 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
>> > Rendered 1 page in 4255ms
>> > ---------------------------------------------------------
>> > openjdk version "11" 2018-09-25
>> > OpenJDK Runtime Environment 18.9 (build 11+28)
>> > OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
>> > Rendered 1 page in 4275ms
>> > ---------------------------------------------------------
>> > openjdk version "12-ea" 2019-03-19
>> > OpenJDK Runtime Environment 19.3 (build 12-ea+11)
>> > OpenJDK 64-Bit Server VM 19.3 (build 12-ea+11, mixed mode)
>> > Rendered 1 page in 4399ms
>> >
>> > The pdf file used in this example can be downloaded from
>> >
>> https://drive.google.com/file/d/139wP6PDmmQ6KBTyeJTETIrplSuOUgFfG/view?usp=sharing
>> >
>> > Best regards
>> > Daniel
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20181001/736f298b/attachment.html>
More information about the 2d-dev
mailing list