> 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4