У меня есть сценарии Python, которые вызывают функцию foo, которая выполняет некоторые операции, использующие, скажем, 10 ГБ памяти, и возвращает небольшой объект res в основную программу. После печати разрешения я удаляю их, но сверху видно, что процесс ipython все еще использует около 1 ГБ памяти. Как я могу гарантировать, что процесс освободит всю неиспользуемую память?
Код: Выделить всё
def foo():
.... # some complication operation
return res
if __name__ == "__main__":
res = foo()
print(res)
del res
Я пробовал использовать gc.collect(), но это ничего не меняет.
Я читал, что иногда память становится фрагментированной, и Python не может освободить всю память.< /п>
Подробнее здесь:
https://stackoverflow.com/questions/783 ... -in-python