python vm每次编译方法吗?

时间:2011-02-05 18:19:03

标签: python vm-implementation

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

1 个答案:

答案 0 :(得分:9)

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

CPython永远不会将Python代码编译为本机可执行代码。