1

如果我有一个在模块中的几个地方调用的函数,虚拟机是否仅在第一次执行该函数时将其编译为本机代码,而不是在其他调用中使用已兑现的代码?(如 .NET jit 编译器)

4

1 回答 1

9

在 CPython(标准 Python 实现)中,第一次导入 Python 模块时,会将其编译为字节码并存储在 .pyc 文件中。从那时起,VM 会在需要时读取和解释 .pyc 文件。一旦 .pyc 被读入内存,字节码就在内存中,并在调用函数时由 VM 解释。

CPython 从不将 Python 代码编译为本机可执行代码。

于 2011-02-05T18:22:21.200 回答