Я работаю над большим проектом, и там я вижу непрерывное увеличение использования памяти. Код похож на мою демонстрацию, приведенную ниже, но не со случайными числами и более полезными вычислениями ... Но эффект тот же. Запустив это, я вижу увеличение использования памяти
Почему это происходит и как я могу предотвратить это?
Спасибо за каждый полезный ответ:)
Я использую Python 3
n= 10000000
indat = np.random.random(n*4)
data = np.zeros(n*3)
d = [0,0,0,0]
for i in range(n):
d = indat[i*4:i*4+4]
data[i*3] = np.sqrt(np.abs(d[0]+d[1]*d[3]))
data[i*3+1]= np.sqrt(np.abs(d[3]+d[2]*d[3]))
data[i*3+2]= np.sqrt(np.abs(d[2]+d[1]*d[3]))
EDIT:
Я попробовал еще кое-что:
1: работает как положено - без увеличения памяти
for i in range(n):
print(i, end="\r")
2: Но с этим происходит увеличение.
for i in range(n):
data[i] = indat[i]**2
Так что, как минимум, эта простая копия не работает, как я ожидаю ...
Как мне заставить python сохранить результат моих вычислений в уже выделенной памяти?