Reverting the incremental GC in Python 3.14 and 3.15

(discuss.python.org)

77 points | by curiousgal 3 days ago

6 comments

  • sega_sai 2 minutes ago
    I think reverting is not problem per se, but releasing a highly problematic version without proper testing in such an essential component is.
  • davidkwast 1 hour ago
    "Python 3.14 shipped with a new incremental garbage collector. However, we’ve had a number of reports of significant memory pressure in production environments.

    We’ve decided to revert it in both 3.14 and 3.15, and go back to the generational GC from 3.13."

    Sounds the right move for me

    • winrid 8 minutes ago
      The main benefit of python to me is that while slow, it's predictable. I do think they're going to get a lot more resistance to adding JITs, moving GCs, etc. it will become java with a million knobs to tune. If people want a JIT'd python just use pypy, right?
      • stackskipton 1 minute ago
        As Python using SRE and supporting Python Flask apps, most of us would love JIT in Python assuming it pretty much drop in replacement.

        PyPy doesn't have the support it needs and is stuck on 3.11.

      • sigmoid10 1 minute ago
        And if people want python with java, there's always Jython.
  • bhouston 12 minutes ago
    .NET seems to have regularly changed the garbage collector over the years and I do not remember any similar surprises in production. I wonder why they have had better experience?

    I thought that by now dynamic garbage collection was a known quantity so that making changes, outside of out right bugs, is fairly safe and predictable?

    • stackskipton 5 minutes ago
      One thing Microsoft does really well is eating its own dogfood and Microsoft feeds a ton of .Net dogs.

      So any change to GC starts with massive .Net MSFT code base so they get extremely good telemetry back about any downsides and might be able to fix it in time.

  • NooneAtAll3 1 hour ago
    I'm genuinely surprised that python change was even possible without PEP
    • AdamN 1 hour ago
      Yeah it seems like a miss. I guess the thinking was that it wasn't developer-facing and just an internal optimization. But of course any change to garbage collection will change the memory and cpu dynamics of the process in a material way.
    • giancarlostoro 43 minutes ago
      Makes ya miss having a BDFL. Dang I didn't realize he's 70 now.

      https://en.wikipedia.org/wiki/Guido_van_Rossum

    • Fizzadar 1 hour ago
      Exactly! Would like to understand more how that came about. PEP exists for a reason.
  • brianwawok 28 minutes ago
    In the world of AI written code, Python just doesn’t make sense. Converted about 100k lines in the last few months to golang and the performance is life changing. Curious if we will see global Python adoption fall by 75% or more in the next few years.
    • mau 9 minutes ago
      I think humans are still accountable for the code generated by agents.

      You are free to switch language but you still need to understand it.

    • backwardation_b 16 minutes ago
      nothing about the performance characteristics of python changed with AI so why would you use python over golang if performance is a requirement/bottleneck? Trying to understand the reasoning as to me golang and python are equally simple to write and understand.
      • phainopepla2 8 minutes ago
        Regardless of whether golang and python are actually equally simple, python certainly has the reputation of being easier to write and read than almost any other language. That is a big part of its popularity.
  • askllk 1 hour ago
    All these issues were known in previous attempts for removing the GIL. But if Instagram/Meta want it, everyone stands to attention and finds out the obvious problems years later. Kind of like in geopolitics.

    I hope Meta switches Instagram to PHP/Hack so they leave Python alone.