<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>I just ran some very quick and dirty profiling with the latest Jbossas and the results are as follows:</div><div><br></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></div><div><span class="Apple-style-span" style="border-collapse: collapse;">

<table border="0" cellpadding="0" cellspacing="0" width="406" style="border-collapse: collapse; position: static; z-index: auto; ">
<!--StartFragment-->
 <col width="84" style="mso-width-source:userset;mso-width-alt:3072">
 <col width="78" style="mso-width-source:userset;mso-width-alt:2852">
 <col width="94" style="mso-width-source:userset;mso-width-alt:3437">
 <col width="75" span="2">
 <tbody><tr height="13">
  <td height="13" width="84">Beans</td>
  <td width="78">Startup Time</td>
  <td width="94">Startup (WELDX)</td>
  <td width="75">Memory Usage</td>
  <td width="75">Mem Usage(no beans.xml)</td>
 </tr>
 <tr height="13">
  <td height="13">No Deployment</td>
  <td align="right" x:num="17.0">17</td>
  <td></td>
  <td></td>
  <td align="right" x:num="135.0">135</td>
 </tr>
 <tr height="13">
  <td height="13" align="right" x:num="20.0">20</td>
  <td align="right" x:num="20.0">20</td>
  <td align="right" x:num="22.0">22</td>
  <td align="right" x:num="149.0">149</td>
  <td></td>
 </tr>
 <tr height="13">
  <td height="13" align="right" x:num="500.0">500</td>
  <td align="right" x:num="24.0">24</td>
  <td align="right" x:num="26.0">26</td>
  <td align="right" x:num="178.0">178</td>
  <td></td>
 </tr>
 <tr height="13">
  <td height="13" align="right" x:num="2000.0">2000</td>
  <td align="right" x:num="35.0">35</td>
  <td align="right" x:num="43.0">43</td>
  <td align="right" x:num="265.0">265</td>
  <td></td>
 </tr>
 <tr height="13">
  <td height="13" align="right" x:num="5000.0">5000</td>
  <td align="right" x:num="87.0">87</td>
  <td align="right" x:num="104.0">104</td>
  <td align="right" x:num="440.0">440</td>
  <td align="right" x:num="210.0">210</td>
 </tr>
<!--EndFragment-->
</tbody></table><br>



</span></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></div><div><span class="Apple-style-span" style="border-collapse: collapse;">So jboss uses 135Mb normally, and 210Mb when a war with 5000 classes is deployed that does not have beans.xml. When you add weld to the mix the memory usage jumps by 230Mb to 440Mb.</span></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></div><div><span class="Apple-style-span" style="border-collapse: collapse;">According to yjp WeldClassImpl (and it's retained WeldMethod/Field etc) is responsible for 120Mb of this. O</span><span class="Apple-style-span" style="border-collapse: collapse; ">ther major culprits seem to be TypeSafeObserverResolver at 24Mb (as it is caching ProcessAnnotatedType&lt;Bean*&gt; * 5000) and TypeSafeDecoratorResolver at 13Mb. Not much else stands out.</span></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></div><div>The beans used where quite simple (1 injection point, 7 fields, 6 methods), no normal scoped beans, no interceptors, not decorators. Weldx does have a notable effect on startup time, which I will also investigate.</div><div><br></div><div>I don't think it will be to hard to significantly reduce this. Reducing the number of HashMap's in WeldClassImpl (and replacing some with ImmutableArraySet) should give a significant gain, and clearing the TypeSafeObserverResolver and TypeSafeDecoratorResolver after startup should also save around 40Mb. I'll try and do some work this week and see how much I can get this down.</div><div><br></div><div>Stuart</div><br><div><div>On 10/11/2010, at 8:48 AM, Pete Muir wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>I'm about to post a blog about this.<br><br>On 9 Nov 2010, at 21:43, Lincoln Baxter, III wrote:<br><br><blockquote type="cite">Are these points valid?<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">If so, are we aware of them? Just trying to raise awareness to what people are saying out in the world. I have noticed a relatively high memory footprint in Seam Forge, using Weld SE.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><a href="http://www.dzone.com/links/r/cdi_a_major_risk_factor_in_java_ee_6.html">http://www.dzone.com/links/r/cdi_a_major_risk_factor_in_java_ee_6.html</a><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Is there anything we can address here and attempt to demystify this blog?<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">-- <br></blockquote><blockquote type="cite">Lincoln Baxter, III<br></blockquote><blockquote type="cite"><a href="http://ocpsoft.com">http://ocpsoft.com</a><br></blockquote><blockquote type="cite"><a href="http://scrumshark.com">http://scrumshark.com</a><br></blockquote><blockquote type="cite">"Keep it Simple"<br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">weld-dev mailing list<br></blockquote><blockquote type="cite"><a href="mailto:weld-dev@lists.jboss.org">weld-dev@lists.jboss.org</a><br></blockquote><blockquote type="cite"><a href="https://lists.jboss.org/mailman/listinfo/weld-dev">https://lists.jboss.org/mailman/listinfo/weld-dev</a><br></blockquote><br><br>_______________________________________________<br>weld-dev mailing list<br><a href="mailto:weld-dev@lists.jboss.org">weld-dev@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/weld-dev<br></div></blockquote></div><br></body></html>