Я имею здесь рекурсивную функцию:Рекурсивные функции использования памяти
def pow(x, n):
if n == 0:
return 1
else:
return x * pow(x, n-1)
answer = pow(a, b)
И Итерационный:
def pow(x, n): # n != 0
answer = x
while n > 1:
answer *= x
n -= 1
return answer
answer = pow(a, b)
Я хотел бы знать, какая из них больше памяти. Я думаю, что рекурсивно использует больше памяти, потому что он сохраняет «переменные» для каждого вызова функции. Если это так, что будет формализмом, чтобы объяснить это? Есть ли хороший способ отслеживать использование этой памяти внутри кода?
Я не думаю, что это дубликат. Главный вопрос заключается не в отслеживании использования памяти, а в том, что касается использования рекурсивной памяти.
Вы пытались использовать профайлер памяти? – jonrsharpe
Я читал о Guppy-PE, но мне не очень понравилось, как его использовать. –
неверное ваше итерационное решение. –