Я создаю огромный сетчатый объект (около 900 мегабайт). Как только я закончил с анализом, я хотел бы как-то удалить его из памяти.Удалите большой объект в ironpython и мгновенно отпустите память?
Я немного искал на stackoverflow.com, и я узнал, что del
удалит ссылку на упомянутую сетку. Не сам объект сетки. И что через некоторое время объект сетки в конечном итоге получит сбор мусора.
gc.collect()
Единственный способ, с помощью которого я мог мгновенно освободить память, и там, чтобы как-то удалить упомянутую большую сетку из памяти? Я нашел ответы здесь, на stackoverflow.com, в которых говорится, что следует избегать gc.collect()
(по крайней мере, когда речь заходит о регулярном питоне, а не о железе). Я также нашел комментарии здесь, в stackoverflow, которые утверждают, что в IronPython даже не гарантировано, что память будет выпущена, если ничего не будет содержать ссылку.
Любые комментарии по всем этим вопросам?
Я использую версию ironpython 2.7.
Благодарим вас за ответ.
Благодарим вас за ответ @BendEg. Я не программист, поэтому дайте мне понять, правильно ли я вас понял: Вы советуете позвонить: '' 'del meshObject; GC.Collect() '' '. И '' '' GC.WaitForPendingFinalizer''' не следует вызывать, поскольку ironpython будет вызывать его автоматически из-за верхнего '' 'gc.collect()' '' оператора. Я правильно понял это? – marco
Да, вы правильно поняли мой ответ. Если память должна быть освобождена синхронизацией и немедленно, у вас нет другого выбора, использующего сборщик мусора. – BendEg