Выход из интерпретатора Python без запуска сборки мусора


В конце моей программы, где на самом деле ничего не должно происходить, интерпретатор CPython 3.2 тратит почти 2 минуты на сборку мусора. Этоизвестная проблема .

К счастью, в моем случае мне не нужно делать сборку мусора до конца программы. Поэтому мне просто нужно найти способ выйти из программы, когда она будет выполнена, не давая gc.collect() шанса на запуск.

Нажатие "CTRL+C" на Windows, кажется, делает это. Я полагаю, что я также мог бы найти идентификатор процесса интерпретатор python, и убить его с помощью вызова операционной системы.

Есть ли способ достичь того же эффекта, используя чистый Python (возможно, исключение или вызов стандартной библиотеки), надеюсь, независимый от платформы?

1 3

1 ответ:

import os
os._exit(0)
Это не рекомендуется, поскольку деструкторы могут выполнять некоторые полезные действия. Если вы уверены, что вам не нужны эти деструкторы для запуска, это должно сработать.