[Vm-dev] Trying to understand tenuring

Clément Bera bera.clement at gmail.com
Fri May 8 10:59:50 UTC 2015


2015-05-08 11:31 GMT+02:00 Bert Freudenberg <bert at freudenbergs.de>:

>
> On 08.05.2015, at 08:43, Norbert Hartl <norbert at hartl.name> wrote:
> > I would assume that an object needs to stay connected 60 seconds until
> it gets tenured. But all of the objects in the request don't live that long.
>
> The object memory does not track how long an object was alive, or even how
> many incremental GCs it survived. Once the tenuring threshold is reached
> (after X allocations), all objects alive in new space at that point get
> tenured.
>
> This is how it worked before Spur, anyway. Not sure what the tenuring
> policy is in Spur?
>
> As far as I understood (Eliot correct me if I am wrong):

In spur, when scavenging, if an object survives and has already survived a
certain number of scavenges (I think currently 5), it is tenured instead of
being moved to the future survivor space.

In addition, when scavenging, if the future survivor space gets almost full
(I think currently at least 90% full), all objects surviving the current
scavenge, starting from the point where the new survivor space reached the
limit, are tenured.

So the policy depends on the number of scavenges survived by the object and
the overall number of objects surviving the scavenges.

I don't know though how many objects will make it to the old space in your
requests, but most probably less than currently.

Clement


> - Bert -
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150508/52cb44fa/attachment.htm


More information about the Vm-dev mailing list