https://stackoverflow.com/questions/56228799/python-hangs-indefinitely-trying-to-delete-deeply-recursive-object          


    

    

I have a computer with two Xeon CPUs and 256GB of RAM.  So, even       though it's NUMA, I still have 128GB of memory per CPU.  It's       running a "spin" of Ubuntu 18.10.

    

I compiled a fresh Python 3.7.3 --with-optimizations.  I copied       the sample program straight off the StackOverflow page.  The       program ran for about five and a half hours then exited normally.

    

During the run it printed:

    
      

This gets printed!
        This doesn't get printed
      

    
    

Statistics reported by "time":

    
      

19811.05s user 123.56s system 99% cpu 5:32:15.04 total
      

    
    

Checking in on it now and then, peak observed memory usage (as       reported by "top") was just under 80GB.
    

    

I take it that the interesting part was confirming that "This       doesn't get printed" gets printed when you have enough RAM for the       program to run to completion.  So I guess there's no bug here?        Just an observation about CPython's garbage collector being kinda       slow?  Or maybe CPython gc + swap = super bombad slow?
    

    


    

    

/arry
    

   ">

(original) (raw)

On 5/22/19 12:15 PM, Tim Peters wrote:
There's a Stackoverflow report\[1\] I suspect is worth looking into, but  
it requires far more RAM (over 80GB) than I have). \[...\]  
But, for a start, it would be good to know if anyone else can actually  
reproduce the problem.

[1] https://stackoverflow.com/questions/56228799/python-hangs-indefinitely-trying-to-delete-deeply-recursive-object






I have a computer with two Xeon CPUs and 256GB of RAM. So, even
though it's NUMA, I still have 128GB of memory per CPU. It's
running a "spin" of Ubuntu 18.10.


I compiled a fresh Python 3.7.3 --with-optimizations. I copied
the sample program straight off the StackOverflow page. The
program ran for about five and a half hours then exited normally.


During the run it printed:



This gets printed!

This doesn't get printed



Statistics reported by "time":



19811.05s user 123.56s system 99% cpu 5:32:15.04 total



Checking in on it now and then, peak observed memory usage (as
reported by "top") was just under 80GB.


I take it that the interesting part was confirming that "This
doesn't get printed" gets printed when you have enough RAM for the
program to run to completion. So I guess there's no bug here?
Just an observation about CPython's garbage collector being kinda
slow? Or maybe CPython gc + swap = super bombad slow?





/arry