gpt4 book ai didi

python - Python 的动态特性如何与 PyPy 的内联函数能力互操作?

转载 作者:行者123 更新时间:2023-12-04 15:10:11 26 4
gpt4 key购买 nike

假设你有一个像f这样的函数调用一个函数m.g:

def f(x):
return m.g(x, 2*x, x+1)

f 被调用了很多,所以 PyPy JITs 它和 inlines m.g 放入其中。如果稍后,由于 Python 的“动态”特性,m.g 被其他东西取代了怎么办:f 的旧 JITed 版本会立即被丢弃吗?还是被不小心调用了?

此外,如果您的程序经常进行这些重定义,丢弃的 JITed 版本会导致内存泄漏吗?

最佳答案

回答你的最后一个问题:“如果你的程序做了很多这些重新定义,丢弃的 JITed 版本会导致内存泄漏吗?”这是一个很好的问题,在某些情况下答案可能是肯定的。糟糕的情况可能是 g 是您刚刚使用 execeval 创建的函数,因此存在无限数量的函数对象最终在这里被调用。这是我们过去考虑过解决的问题,但一直没有时间去做。如果您遇到了看起来像是泄漏的情况并且已经隔离了这部分代码,那么我想说这很可能正是您所担心的。在这种情况下,我建议您写邮件至 pypy-dev@python.org 或访问 irc.freenode.net 上的#pypy 来描述您的情况。

关于python - Python 的动态特性如何与 PyPy 的内联函数能力互操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65332054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com