<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Feb 9, 2011, at 7:21 PM, Ted Kremenek wrote:</div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div><div>On Feb 9, 2011, at 6:21 PM, John McCall wrote:</div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Feb 9, 2011, at 3:56 PM, Ted Kremenek wrote:</div><blockquote type="cite"><div>Was there a noticeable impact on compile-time?  Memory use?</div></blockquote><div><br></div>"Before my patch" is r125182.  "After my patch" is r125185.  All measurements except one are the median of 3 approximately similar results as generated on a not-very-reliable, not-hardly-quiescent laptop.<br><div><br></div><div><b>Cocoa_h.m</b> creates 35700 Stmts/Exprs and 85258 Decls.  On a 64-bit platform, this is a theoretical memory savings of 285,600 bytes for Stmts/Exprs and 682,064 bytes for Decls.</div><div>  - <b>Before</b> my patch, it allocated 13,008,896 bytes, of which it used 12,449,976, with the remainder being lost to e.g. alignment padding.</div><div>    A Release build completed 1000 runs (I'm not sure why I did 1000 runs) on my machine with the following characteristics:</div><div><div>    daysthatwere:clang rjmccall$ runN 1000 ../../Release/bin/clang -fsyntax-only INPUTS/Cocoa_h.m</div><div>    name<span class="Apple-tab-span" style="white-space:pre">  </span>  avg  <span class="Apple-tab-span" style="white-space:pre">   </span>  min  <span class="Apple-tab-span" style="white-space:pre">   </span>  med  <span class="Apple-tab-span" style="white-space:pre">   </span>  max  <span class="Apple-tab-span" style="white-space:pre">   </span>   SD  <span class="Apple-tab-span" style="white-space:pre">   </span> total </div><div>    user<span class="Apple-tab-span" style="white-space:pre">  </span> 0.3246<span class="Apple-tab-span" style="white-space:pre">     </span> 0.3215<span class="Apple-tab-span" style="white-space:pre">     </span> 0.3247<span class="Apple-tab-span" style="white-space:pre">     </span> 0.3328<span class="Apple-tab-span" style="white-space:pre">     </span> 0.0014<span class="Apple-tab-span" style="white-space:pre">     </span>324.5585</div><div>    sys<span class="Apple-tab-span" style="white-space:pre">       </span> 0.0771<span class="Apple-tab-span" style="white-space:pre">     </span> 0.0662<span class="Apple-tab-span" style="white-space:pre">     </span> 0.0819<span class="Apple-tab-span" style="white-space:pre">     </span> 0.0898<span class="Apple-tab-span" style="white-space:pre">     </span> 0.0068<span class="Apple-tab-span" style="white-space:pre">     </span>77.1401</div><div>    wall<span class="Apple-tab-span" style="white-space:pre">       </span> 0.4064<span class="Apple-tab-span" style="white-space:pre">     </span> 0.3954<span class="Apple-tab-span" style="white-space:pre">     </span> 0.4088<span class="Apple-tab-span" style="white-space:pre">     </span> 0.4440<span class="Apple-tab-span" style="white-space:pre">     </span> 0.0071<span class="Apple-tab-span" style="white-space:pre">     </span>406.4173</div><div><br></div><div>  - <b>After</b> my patch, it allocated 12,779,520 bytes, of which it used 12,164,576.  This is a memory savings of 284,400 bytes (used).  1,328,392 bytes of Stmt/Expr nodes were allocated overall.</div></div></div></div></blockquote><div><br></div><div>The memory savings I see from your numbers is 13,008,896 - 12,779,520 = 229,376 (from the total allocated bytes).  Isn't this the actual memory savings (not 284,400)?</div></div></div></div></div></blockquote><div><br></div><div>That's a fair point.  I was using "used" because there are things we could do to reduce the overhead from alignment adjustment, whereas there's nothing we can do to reduce the raw "used" overhead, but in terms of immediate effect on the compiler, "allocated" is the better number.</div><div><br></div><div>John.</div></div></body></html>