Joannah Nanjekye <nanjekyejoan...@gmail.com> added the comment:
>5 bit *per object* is a lot because it scales with the number of objects. It >will quickly obliterate >any gain that we get from some objects being >deallocated sooner (which is what we are trying >to achieve). Using >inter-generations has a constant cost that is negligible. I agree but this may not require us falling back to a two word header per object as was the original worry. If it is a worse tradeoff to managing steps then I would suggest to stick to the steps. Again in the end it is about what tradeoffs are willing to work with. >I am not sure what you mean with "changing the age >threshold for objects >looks simpler than >creating and managing steps". If you mean changing >the >generational threshold, I think that >does not fix the problem as it only >delays or speeds up >collections but the problem is >scale-invariant with the >number of objects. I meant that for any need for increase in promotion delay, we need to add a step and manage it which is more complex than for example when tracking ages, incase of a change we only change the age threshold which looks simpler to implement. >I will propose maybe to only do sub-steps for the first generation (as many >papers suggest >that is where the bigger gains are). Correct, since the premise is we just want to delay promotion of young objects to an older generation so that they have enough time to die. The steps should reasonably be in the first generation. How many semi-spaces do you think of having in this generation? Most systems have and recommend two. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue39143> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com