Hi Pablo,
could you or Erlend please explain why types which don't reference any other objects need to participate in GC for deallocation ?
Many PRs or checked in patches only do this:
+static int +ucd_traverse(PreviousDBVersion *self, visitproc visit, void *arg) +{
Py_VISIT(Py_TYPE(self));
return 0; +}
AFAIK (but could be wrong, of course), the type object itself does not reference any other objects related to the object that is being GCed.
By having (nearly) all stdlib types participate in GC, even ones which don't reference other objects and cannot be parts of reference circles, instead of immediately deleting them, we will keep those objects alive for much longer than necessary, potentially causing a resource overhead regression.
-- Marc-Andre Lemburg eGenix.com
Professional Python Services directly from the Experts (#1, May 27 2021)
Python Projects, Coaching and Support ... https://www.egenix.com/ Python Product Development ... https://consulting.egenix.com/
::: We implement business ideas - efficiently in both time and costs :::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 https://www.egenix.com/company/contact/ https://www.malemburg.com/