<br><br><div class="gmail_quote">On Mon, Mar 10, 2008 at 12:30 PM, Adam Olsen <<a href="mailto:rhamph@gmail.com">rhamph@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div class="Wj3C7c"><br>
</div></div>You can of course tweak gc.set_threshold() (and I would expect this to<br>
be quite effective, once you find out what an appropriate threshold0<br>
is for your app.)  I don't believe you'll find any existing counters<br>
of the current heap size though (be it number of allocated objects or<br>
total size consumed by those objects.)...</blockquote><div><br>
It would be nice if the threshold would adjust based <br>
on the performance characteristics of the app.<br>
In particular it'd be nice if the garbage collector would<br>
notice when it's never finding anything and wait longer<br>
everytime it finds nothing for the next collection attempt.<br>
<br>
How about this.<br>
- The threshold slides between minimumThresh and maximumThresh<br>
- At each collection the current number of objects<br>
  collected is compared to the last number collected (collectionTrend).<br>
- If the collectionTrend is negative or zero the next threshold slides<br>
  towards the maximum.<br>
- If the collectionTrend is a small increase, the threshold stays the same.<br>
- If the collectionTrend is a large increase the next threshold slides towards<br>
  the minimum.<br>
</div></div>That way for apps that need no garbage collection<br>
(outside of refcounting) the threshold would slide to the<br>
maximum and stay there, but for apps that need a lot of<br>
gc the threshold would bounce up and down near the minimum.<br>
<br>
This is almost easy enough that I could implement it...<br>
    -- Aaron Watters<br>
<br>
===<br>
<a href="http://www.xfeedme.com/nucular/pydistro.py/go?FREETEXT=stupid+animation">http://www.xfeedme.com/nucular/pydistro.py/go?FREETEXT=stupid+animation</a><br><br>