Если я запускаю программу Python с утечкой памяти, я обычно ожидаю, что программа в конечном итоге умрет с MemoryError
. Но вместо этого происходит то, что вся виртуальная память используется до тех пор, пока на моем диске не закончится свободное место. Я использую Mac OS X 10.8 на сетчатке MacBook Pro. Мой компьютер обычно имеет от 10 до 20 ГБ свободного места. Mac OS X достаточно умна, чтобы не умирать полностью, когда на диске не хватает места (скорее, это дает мне диалоговое окно, позволяющее принудительно выйти из моих программ с графическим интерфейсом).
Есть ли способ заставить Python просто умереть, когда ему не хватает реальной памяти, или некоторого разумного объема виртуальной памяти? Это то, что происходит в Linux, насколько я могу судить. Я предполагаю, что Mac OS X более щедра, чем Linux, с виртуальной памятью (может быть, факт того, что у меня есть SSD; я не знаю, насколько умна OS X с этим материалом). Может быть, есть способ заставить ядро Mac OS X никогда не использовать столько виртуальной памяти, которая оставляет на жестком диске менее 5 ГБ?