python vm每次都会编译方法吗?

发布于 2024-10-16 04:30:32 字数 90 浏览 2 评论 0原文

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

If I have a function that is called in few places in my module, does the virtual machine compiles it to native code only the first time the function is executed and than use the cashed code on the other calls? (like .NET jit compiler)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水染的天色ゝ 2024-10-23 04:30:32

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

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

In CPython (the standard Python implementation) the first time a Python module is imported, it's compiled to bytecode and stored in a .pyc file. From then on, the .pyc file is read and interpreted by the VM when needed. Once the .pyc is read into memory, the bytecode is in memory, and interpreted by the VM when the function is called.

CPython never compiles Python code to native executable code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文