Размер стека оценки в CPython - PullRequest
0 голосов
/ 17 января 2020

Мне известно, что CPython имеет предел рекурсии, который на моей копии Python равен 3000.

Кто-нибудь знает, существует ли ограничение глубины стека при выполнении арифметических операций? c оценки?

Использует ли CPython один и тот же стек для вызовов функций и стека оценки?

Большинство других языков делают так, я полагаю, что CPython также. Поскольку CPython не хранит много в стеке (почти все, что я считаю, хранится в куче), я думаю, что стек оценки не должен быть слишком большим? Я искал https://leanpub.com/insidethepythonvirtualmachine, но ничего не смог найти.

1 Ответ

0 голосов
/ 18 января 2020

Я провел дополнительное исследование, и оказалось, что в CPython есть несколько стеков оценки (или значения). Например, когда CPython вызывает функцию, создается экземпляр объекта PyFrameObject, и в нем для этой функции создается оценочный стек. Размер этого стека, по-видимому, оценивается во время компиляции. Таким образом, нет единого стека оценки, и размер каждого из них оценивается во время компиляции.

...