python 递归函数 内存底层_Python:分析内存时增加递归函数调用

我在研究递归函数。我用Colaboratory运行我的代码。在

为什么使用while profiler函数来增加内存调用的次数?我用一个全局变量来计算函数被调用的次数。在

这是我没有分析器的原始代码:# imports and other things...

accm = 0

def sum_num(n):

global accm

accm += 1

if n == 1:

return 1

return n + sum_num(n - 1)

call_list = []

for i in range(0, 6000, 100):

accm = 0

if i == 0:

i = 1

sum_num(i)

call_list.append(accm)

# visualization things...

并将递归限制设置为10000。在

图形可视化accm从1到6000是线性的:

{1美元^

当我使用剖析器时,我本以为这不会改变,但它确实改变了。在

以下是概要版本:

^{pr2}$

我得到的是一个从1到16000的非线性图;它的最大点大约是20000,它随着噪声线性增加,直到x=25和y=16000,然后随着噪声减小,然后又线性增加:

e832ceeab12acf30df1ad615bb1a763e.png

我想知道为什么会这样,以及如何解决它。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值