3 ms·
I think it was Greg Stein who made a significant attempt on removing the GIL back in the 1.x timeframe? IIRC, the penalty was much less than 50%, but it was st
by __d 6y ago
I think it was Greg Stein who made a significant attempt on removing the GIL back in the 1.x timeframe? IIRC, the penalty was much less than 50%, but it was still a significant cost.
I think that as time has passed, the inability to simply utilize more than one core becomes more of a problem. The transition to supporting async serves mostly to highlight its inability to use a thread pool like Go, as an example.
While I agree that C extensions (and especially, the standard extensions, like eg. socket) really help a lot to limit the impact of of the GIL, I think the usual advice to "just move it to a C extension" or "use multiple processes" are kinda ridiculous to anyone who's not used to the situation.
Unfortunately, fixing it will almost certainly require breaking the C API, and we've only just about recovered from the 2->3 breakage: I don't think the language can afford to do it again, perhaps ever.
Which is why I think it's a shame that the last transition didn't actually achieve more ...