4 ms·
>the GC is triggered by memory pressure and that's it. Because it knows nothing about fd pressure, So why not teach it about fd pressure? There's no reason no
by catern 6y ago
>the GC is triggered by memory pressure and that's it. Because it knows nothing about fd pressure,
So why not teach it about fd pressure?
There's no reason not to teach a GC about fd pressure - the reason that's rarely done is that language implementers generally don't care that much about the system interface - they just link against libc and call it done.
- dragonwriter 6y ago> You can't even define a custom hashing function All objects subject to GC have a memory impact, very few of them have an fd impact. You either have to separately track those that impact fds, or do a lot (up to 100%) unnecessary work in response to fd pressure. Even if user code can disable the fd pressure response, you've got to carry the baggage of a GC with extra code to handle it around. It's very easy to see “teaching a GC about fd pressure” as not worth the time and effort for the main runtime GC for a general purpose language. If you had a facility for swapping in special purpose GCs for particular applications, building a specialty GC that added fd awareness might be a net win for some apps, but...
- catern 6y ago>It's very easy to see “teaching a GC about fd pressure” as not worth the time and effort for the main runtime GC for a general purpose language. Yes, that's what I said: >language implementers generally don't care that much about the system interface - they just link against libc and call it done. There's no research done in this area (at least I don't know about any). I'm sure if people cared about it, they would find good solutions. But they mostly don't care about the system interface - which leads to the problems that this article is talking about. (Not that Python is on the fore-front of CS research - it's downstream of more innovative languages - but if those languages cared and had done research about the system interface, they would have come up with good ideas that might flow down to Python)