> q1 are generations placed in separate memory regions, or are all > generations in one memory regions and there is a pointer that > signifies the boundary between generations?
You should really start reading the source code. See Modules/gcmodule.c. To answer your question: neither, nor. All objects are in one region, and there is no pointer separating the generations. Instead, all objects belonging to one generation form a double-linked list. > I propose to track hot spots in python, that is contexts where most of > allocations occur, and instrument these with counters that essentially > tell how often an object generated here ends up killed in ephemeral, > short-, long-lived garbage collector run or is in fac tstill alive. If > a particular allocation context creates objects that are likely to be > long-lived, allocator could skip frst 2 generations altogether > (generations are separate regions) or preload the object with high > survival count (if q1 is single region). We would consider such a proposal only if you had *actual evidence* that it improves things, rather than just having a reasoning that it might. Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com