<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 15 jan 2013, at 16:30, Coleen Phillimore &lt;<a href="mailto:coleen.phillimore@oracle.com">coleen.phillimore@oracle.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div bgcolor="#FFFFFF" text="#000000">
    <br>
    Stefan, This change looks good.&nbsp;</div></blockquote><div><br></div><div>Thanks.</div><br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">&nbsp; How much footprint does this save?<br></div></blockquote><div><br></div><div>For every class without annotations we save four arrays of size:&nbsp;</div><div><div style="margin: 0px; font-size: 13px; font-family: Courier; ">&nbsp;sizeof(Array&lt;AnnotationArray*&gt;) + (num_methods - 1) * sizeof(AnnotationArray*)</div></div><div><br></div><div>and we don't have to allocate the two Annotation objects and save:</div><div>&nbsp;2 * sizeof(Annotations)</div><div><br></div><div>Do you want some real numbers from a benchmark?</div><div><br></div><div>thanks,</div><div>StefanK</div><div><br></div><div><br></div><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    <div class="moz-cite-prefix">On 01/15/2013 10:09 AM, Stefan Karlsson
      wrote:<br>
    </div>
    <blockquote cite="mid:50F5710E.5090802@oracle.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
      <div class="moz-cite-prefix">On 01/15/2013 02:38 PM, Vitaly
        Davidovich wrote:<br>
      </div>
      <blockquote cite="mid:CAHjP37E9O_4BtUqNvnuR_ecq_dhJ4_4smcWMydiT3Zys2UUOwA@mail.gmail.com" type="cite"><p dir="ltr">Looks good Stefan. <br>
        </p>
      </blockquote>
      <br>
      Thanks, Vitaly.<br>
      <br>
      <blockquote cite="mid:CAHjP37E9O_4BtUqNvnuR_ecq_dhJ4_4smcWMydiT3Zys2UUOwA@mail.gmail.com" type="cite"><p dir="ltr"> The annotation creation code in classFileParser is
          really asking for a macro or helper function that does the
          checks and construction.</p>
      </blockquote>
      <br>
      I agree. Does anyone in the runtime team have any opinions on
      this?<br>
    </blockquote>
    <br>
    Yes, I do.&nbsp;&nbsp; The method annotations (and class ones too but not so
    much) are a problem for cleaning up metadata on class file parsing
    failure.&nbsp; I am working on adding these to the inlined tables in
    ConstMethod, which is another messy area.<br>
    <br>
    Coleen<br>
    <br>
    <blockquote cite="mid:50F5710E.5090802@oracle.com" type="cite"> <br>
      thanks,<br>
      StefanK<br>
      <br>
      <blockquote cite="mid:CAHjP37E9O_4BtUqNvnuR_ecq_dhJ4_4smcWMydiT3Zys2UUOwA@mail.gmail.com" type="cite"><p dir="ltr">Thanks</p><p dir="ltr">Sent from my phone</p>
        <div class="gmail_quote">On Jan 15, 2013 7:27 AM, "Stefan
          Karlsson" &lt;<a moz-do-not-send="true" href="mailto:stefan.karlsson@oracle.com">stefan.karlsson@oracle.com</a>&gt;

          wrote:<br type="attribution">
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex"> <a moz-do-not-send="true" href="http://cr.openjdk.java.net/%7Estefank/8005994/webrev.00/" target="_blank">http://cr.openjdk.java.net/~stefank/8005994/webrev.00/</a><br>
            <br>
            HotSpot unnecessarily allocates annotations arrays when they
            are not needed. This memory regression was introduced when
            the annotation data structures were changed in the Permgen
            Removal project.<br>
            <br>
            This fix:<br>
            1) reintroduces the old null checks<br>
            2) adds a null check before creating the newly introduced
            method type annotations.<br>
            3) adds a missing null check where the type annotations are
            used, since they now can be null.<br>
            <br>
            Testing:<br>
            jprt, jdk_lang and type annotations tests<br>
            <br>
            thanks,<br>
            StefanK<br>
          </blockquote>
        </div>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </div>

</blockquote></div><br></body></html>