<div dir="auto">Phil,<div dir="auto"><br><div dir="auto">If you look at the given pdf file, it has large images that exceed 2k so such ones may be more costly to convert.</div><div dir="auto"><br></div><div dir="auto">As jpeg decoder in openjdk11 is different than oraclejdk8, it may cause more ColorConvertOp filter operations ... if color profiles are different.</div><div dir="auto"><br></div><div dir="auto">Anyway this performance is not related to Marlin renderer, so I can not help much except in its diagnostic.</div><div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto">Laurent</div></div></div><br><div class="gmail_quote"><div dir="ltr">Le mar. 2 oct. 2018 à 23:35, Philip Race <<a href="mailto:philip.race@oracle.com">philip.race@oracle.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    I've spent some time examining what pdfbox is passing to
    ColorConvertOp<br>
    It is called about 10 or 11 times in this test with images typically
    1-2K in each dimension.<br>
    The input image is a Custom BufferedImage which uses an
    ICC_ColorSpace constructed<br>
    from a color profile file that is embedded in pdfbox which is an
    open source equivalent<br>
    of what Acrobat uses. It has a 4 component raster and is opaque<br>
    <br>
    This is filtered into a 3 component standard INT_RGB ColorModel.<br>
    <br>
    I've distilled this down into a small program which has an copy of
    the method<br>
    that is defined in pdfbox and is invoking the supposedly slow
    ColorConvertOp.<br>
    <br>
    So I believe this is all exactly what is happening in pdfbox.<br>
    <br>
    What I find is that it is actually much faster on JDK11 than JDK 8.<br>
    <br>
    prrubuntu:~$ ~/jdk-11/bin/java CConv <br>
    4881<br>
    prrubuntu:~$ ~/jdk8u181/bin/java CConv<br>
    12529<br>
    <br>
    <br>
    I can't say why that would be but the results are clear.<br>
    So I am left to suppose that pdfbox really is doing something
    different in 8 vs 11.<br>
    Or that this not the real problem. What do others see ?<br>
    <br>
    I've attached the program. The 1Mb color profile file can be got
    from the pdfbox sources.<br>
    <br>
    -phil.<br>
    <br>
    <br>
    On 10/2/18, 9:35 AM, Laurent Bourgès wrote:
    <blockquote type="cite">
      <div dir="auto">
        <div>Hi Daniel,</div>
        <div dir="auto">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div dir="ltr">
                <div dir="ltr">
                  <div dir="ltr">
                    <div><br>
                    </div>
                    <div>Let's not compare apples and oranges. What I
                      can see it takes the same route and
                      behave similarly.</div>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto"> I agree, I did not take enough time to get
          accurate profiles, sorry.<br>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div dir="ltr">
                <div dir="ltr">
                  <div dir="ltr">
                    <div><br>
                    </div>
                    <div>If you look at</div>
                    <div><a href="http://uhash.com/java_reg/Call_Tree_java_8.html" rel="noreferrer noreferrer" target="_blank">http://uhash.com/java_reg/Call_Tree_java_8.html</a><br>
                    </div>
                    <div><a href="http://uhash.com/java_reg/Call_Tree_java_11.html" rel="noreferrer noreferrer" target="_blank">http://uhash.com/java_reg/Call_Tree_java_11.html</a><br>
                    </div>
                    <div><br>
                    </div>
                    <div>You can see that ConvertOp.filter takes 1.5s
                      longer on Java 11.</div>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">I confirm: 1.8s vs 300ms.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Philip, do you know what could have change in
          this 2d area ?</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">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) ...</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">If needed, I could profile native code using
          oprofile / perf.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Laurent</div>
      </div>
    </blockquote>
  </div>

</blockquote></div>