Quit Python program when it hits memory limit

I have a couple of Python/Numpy programs that tend to cause the PC to freeze/run very slowly when they use too much memory. I can’t even stop the scripts or move the cursor anymore, when it uses to much memory (e.g. 3.8/4GB)
Therefore, I would like to quit the program automatically when it hits a critical limit of memory usage, e.g. 3GB.

I could not find a solution yet. Is there a Pythonic way to deal with this, since I run my scripts on Windows and Linux machines.

Best answer

You could limit the process’es memory limit, but that is OS specific.

Another solution would be checking value of psutil.virtual_memory(), and exiting you program if it reaches some point.

Though OS-independent, the second solution is not Pythonic at all. Memory managment is one of the things with have operating systems for.