История изменений
Исправление
gh0stwizard,
(текущая версия)
:
Так вот вопрос, оно отпустит когда-нибудь эту память или нет?
Зависит от ОС, версии питона, а также как он был скомпилирован и как написан модуль (на чистом питоне или сишным модулем).
Отпустит оно её просто со временем или отпустит оно её когда она будет нужна другому процессу?
В GNU/Linux после free(), помеченная как освобожденная память будет отдана другому процессу при явной необходимости. Однако, следующий вызов в твоей программе может получить участок из swap, и соответствующие последствия. Так что думай, как лучше проектировать программу и когда освобождать память. В большинстве случаев тебе нужно заботиться, чтобы хватало ОЗУ с запасом и не полагаться на swap или что ОС сделает все за тебя.
Некоторые особенности описаны тут: http://stackoverflow.com/questions/15455048/releasing-memory-in-python
+ https://docs.python.org/3/library/tracemalloc.html
P.S. Не спец по питону.
Исправление
gh0stwizard,
:
Так вот вопрос, оно отпустит когда-нибудь эту память или нет?
Зависит от ОС, версии питона, а также как он был скомпилирован и как написан модуль (на чистом питоне или сишным модулем).
Отпустит оно её просто со временем или отпустит оно её когда она будет нужна другому процессу?
В GNU/Linux после free(), помеченная как освобожденная память будет отдана другому процессу. Однако, следующий вызов в твоей программе может получить участок из swap, и соответствующие последствия. Так что думай, как лучше проектировать программу и когда освобождать память.
Некоторые особенности описаны тут: http://stackoverflow.com/questions/15455048/releasing-memory-in-python
+ https://docs.python.org/3/library/tracemalloc.html
P.S. Не спец по питону.
Исходная версия
gh0stwizard,
:
Так вот вопрос, оно отпустит когда-нибудь эту память или нет?
Зависит от ОС, версии питона, а также как он был скомпилирован и как написан модуль (на чистом питоне или сишным модулем).
Отпустит оно её просто со временем или отпустит оно её когда она будет нужна другому процессу?
В GNU/Linux после free(), помеченная как освобожденная память будет отдана другому процессу. Однако, следующий вызов в твоей программе может получить участок из swap, и соответствующие последствия. Так что думай, как лучше проектировать программу и когда освобождать память.
Некоторые особенности описаны тут: http://stackoverflow.com/questions/15455048/releasing-memory-in-python
P.S. Не спец по питону.