CPython中评估堆栈的大小

问题描述 投票:0回答:1

[我知道CPython有一个递归限制,在我的Python副本上是3000。

有人在进行算术评估时是否知道堆栈深度是否有限制?

CPython是否将相同的堆栈用于函数调用和评估堆栈?

[大多数其他语言都这样做,所以我认为CPython也是如此。由于CPython在堆栈上没有存储太多(几乎所有我相信的东西都保存在堆中),我想评估堆栈不需要太大吗?我搜索了https://leanpub.com/insidethepythonvirtualmachine,但找不到任何内容。

python memory-management stack
1个回答
0
投票

我做了一些进一步的研究,似乎CPython中存在多个评估(或价值)堆栈。例如,当CPython调用函数时,将实例化PyFrameObject,并在其中实例化该函数的评估堆栈。该堆栈的大小显然是在编译时估计的。总而言之,没有单个评估堆栈,并且每个评估堆栈的大小都是在编译时估算的。

© www.soinside.com 2019 - 2024. All rights reserved.