Использование памяти увеличивается при перезагрузке того же файла - PullRequest
0 голосов
/ 09 сентября 2018

Каждый раз, когда я загружаю файл npy, использование памяти увеличивается. Следующий мини-пример иллюстрирует эту проблему.

import numpy as np
X = np.random.randn(10000,10000)
np.save('tmp.npy',X)

Теперь, если следующая строка будет выполнена несколько раз, то каждый раз использование памяти будет увеличиваться

y=np.load('tmp.npy')

Я обнаружил точно такую ​​же проблему с файлом npz здесь , но решение состоит в том, чтобы использовать функцию, применимую к файлу npy. Есть идеи?

1 Ответ

0 голосов
/ 09 сентября 2018

Предпосылка ошибочна: использование памяти временно увеличивается при загрузке файла и может снова увеличиться во второй раз, и, возможно, даже в третий, но в итоге сборщик мусора запустится и память будет освобождена.

Если вы не хотите ждать недетерминированного времени для восстановления памяти, вы можете явно заставить сборщик мусора запускаться всякий раз, когда необходимо освободить память:

import gc
gc.collect()

Вы также можете явно удалить массив после загрузки, если вам больше не нужны данные:

del y

Но если вы не выполните ни одного из этих действий и просто загрузите одни и те же данные снова и снова, использование памяти не будет расти вечно - в какой-то момент сборщик мусора запустится, а использование памяти сократится. Это происходит автоматически, и вам обычно не нужно об этом беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...