Basically collecting this is hard:

dict(a=range(9**9))

large list is referenced, the object that holds the only reference is
small no matter how you look at it.

I guess it gets harder still if there are many small live objects, as
getting to this dict takes a while
(easier in this simple case with generataional collector, O(n) in general case)


On 23 December 2010 06:38, Armin Rigo <[email protected]> wrote:
> Hi René,
>
> On Thu, Dec 23, 2010 at 2:33 PM, René Dudfield <[email protected]> wrote:
>> I think this is a case where the object returned by
>> ctypes.create_string_buffer() could use a correct __sizeof__ method
>> return value.  If pypy supported that, then the GC's could support
>> extensions, and 'opaque' data structures in C too a little more
>> nicely.
>
> I think you are confusing levels.  There is no way the GC can call
> some app-level Python method to get information about the objects it
> frees (and when would it even call it?).  Remember that our GC is
> written at a level where it works for any interpreter for any
> language, not just Python.
>
>
> A bientôt,
>
> Armin.
> _______________________________________________
> [email protected]
> http://codespeak.net/mailman/listinfo/pypy-dev
>
_______________________________________________
[email protected]
http://codespeak.net/mailman/listinfo/pypy-dev

Reply via email to