<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><blockquote type="cite" cite="mid:7C8B47AA-21B2-4253-90F5-96EAE8CA4574@kodewerk.com" class=""><div class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class=""><blockquote type="cite" cite="mid:05FF4DD7-5C2A-4061-AD55-E7AB30FAE1C1@kodewerk.com" class=""><div class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class="">
                        <br class="">
                        <a class="issue-link" data-issue-key="JDK-8043575" href="https://bugs.openjdk.java.net/browse/JDK-8043575" id="key-val" rel="4726783" moz-do-not-send="true">JDK-8043575</a> is
                        proposing to dynamically switch between MT and
                        single thread. And there are other CRs to
                        enhance references processing.<br class="">
                        I have a prototype but need more refining.
                        Please keep on eye on this if you are
                        interested. (Thanks, Aleksey for the link at the
                        other email thread)<br class="">
                        <br class="">
                        [1]: e.g. Most of Specjvm2008 sub-tests don't
                        use references. Derby is exceptional case that
                        shows over 12k FinalReferences. So single thread
                        is faster except Derby case.<br class="">
                      </div>
                    </div>
                  </blockquote>
                  <div class=""><br class="">
                  </div>
                  SpecJVM doesn’t represent the real world. </div>
              </blockquote>
              Absolutely!<br class="">
              I was trying to answer the reason why
              ParallelRefProcEnabled is set to false as a default.<br class="">
            </div>
          </div>
        </blockquote>
        <div class=""><br class="">
        </div>
        I got that.. I was trying to suggest that basing this decision
        on that benchmark isn’t a great idea.</div>
    </blockquote>
    Probably my explanation was incomplete.<br class=""></div></div></blockquote><div><br class=""></div>I think we’re talking past each other, my apologies for being a bit too terse. The referenced bug report seems to cover all of my concerns.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class="">
    ParallelRefProcEnabled command-line option was introduced long time
    ago with false as a default. And my previous answer with Specjvm2008
    was my guess from recent data when I investigated JDK-8043575. I was
    saying if we don't have enough references to process, single thread
    is better choice. So this could be the reason of current default
    value. Or my guess would be simply wrong. :)<br class=""></div></div></blockquote><div><br class=""></div>Right, hence my comment that SpecJVM isn’t a great benchmark as it doesn’t represent enterprise applications and hence has nothing useful to say about reference processing which is commonly seen in enterprise applications.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div text="#000000" bgcolor="#FFFFFF" class="">
    <br class="">
    Probably you are saying that we have to use other benchmarks to
    decide the default value.<br class="">
    May I ask what is your recommendation for the benchmarks?<br class=""></div></div></blockquote><div><br class=""></div>I don’t have a specific benchmark for this. I’m relying on observations made from customer’s applications. I don’t know if the SPEC application server benchmark addresses this question. I’ve not run it in quite some time so I don’t recall. At any rate, it is very clear that real world applications use many frameworks that rely heavily on the use of reference types. For example, Hibernate with secondary caching turned on. CMS is sensitive but the G1’s remark phase appears to be exceptionally sensitive to the amount of references it processes. I’ve attached a pause time and G1 breakout of the other phases that is very typical of what I’m seeing.</div><div><br class=""></div><div>Kind regards,</div><div>Kirk</div><div><br class=""></div><div><img apple-inline="yes" id="039AD1BC-C4E4-4B1A-9049-73AD37B310CC" src="cid:2DAE543A-624F-4806-A2C8-45CA1F9C5013" class=""></div><div><br class=""></div><div><img apple-inline="yes" id="6A180909-BEC0-436A-9D28-78B872764754" src="cid:FBD9E14D-F619-4CD8-9B72-86BCAA342143" class=""></div><div><br class=""></div></body></html>