<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
    could I get reviews for this small patch?<br>
    <br>
    Bug: <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8034839">https://bugs.openjdk.java.net/browse/JDK-8034839</a><br>
    <br>
    Problem:
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    The problem is that the patch (7194669) - which was supposed to
    speed-up dependency checking<br>
    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; causes a performance regression. The reason for the
    performance regression is that most dependencies <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; are unique, so we have the overhead of determining if
    the dependency is already checked plus the<br>
    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; overhead of dependency checking. The overhead of
    searching is significant, since we perform <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a linear search on 6000+ items each time.<br>
    <br>
    Solution: Use a hashtable instead of linear search to lookup already
    checked dependencies. The new hashtable <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is very rudimentary. It provides only the required
    functionality to solve this bug. However, the functionality<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; can be easily extended as needed. <br>
    <br>
    Testing: jprt, failing test case, nashorn. The failing test case
    completes in approx. the same time as before 7194669.<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For nashorn + Octane, this patch yields the following
    times spent for dependency checking:<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with this patch:&nbsp; 844s<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7194669: 1080s<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; before 7194669: 5223s<br>
    <br>
    webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~anoll/8034939/webrev.00/">http://cr.openjdk.java.net/~anoll/8034939/webrev.00/</a><br>
    <br>
    Thanks,<br>
    Albert<br>
    <br>
  </body>
</html>