我這裏有一個遞歸函數:遞歸函數的內存使用情況
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 2014-12-19 11:14:12
我讀到顧比-PE,但我並沒有得到很好的如何使用它。 – 2014-12-19 11:16:03
您的迭代解決方案不正確。 – 2014-12-19 11:16:41