首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么.pyc文件的“运行”速度不能比.py文件快?

为什么.pyc文件的“运行”速度不能比.py文件快?
EN

Stack Overflow用户
提问于 2013-05-27 12:35:31
回答 2查看 8.5K关注 0票数 18

我知道.py文件和.pyc文件之间的区别。我的问题不是关于 is how,而是关于为什么根据docs

从.pyc或.pyo文件读取程序时,运行速度不会比从.py文件读取时更快;.pyc或.pyo文件唯一速度更快的是加载它们的速度。

.pyc文件加载导入速度更快。但是,在加载.pyc文件的“运行”部分之后,.py文件中的“运行”部分与“运行”部分的时间相同吗?这是为什么?我本以为

  • 位代码(.pyc)更接近,因此运行速度更快
  • 在执行.py文件之前,它们正在被编译成.pyc。这需要额外的一步,因此需要时间。

我的问题是:在导入部分之后,为什么.pyc文件的运行部分与.py文件相比没有加快执行速度?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-27 12:37:14

运行.py文件时,首先将其编译为字节码,然后执行。加载这样的文件要慢一些,因为对于.pyc,编译步骤已经执行,但是加载之后,同样的字节码解释就完成了。

在伪代码中,Python解释器执行以下算法:

代码语言:javascript
运行
复制
code = load(path)
if path.endswith(".py"):
    code = compile(code)
run(code)
票数 26
EN

Stack Overflow用户

发布于 2013-05-27 12:38:44

程序的运行方式总是一样的。编译后的代码将被解释。

加载程序的方式不同。如果有当前的pyc文件,这将被视为编译版本,因此在运行命令之前不需要执行编译步骤。否则,将读取py文件,编译器必须编译它(这需要一些时间),但是内存中的编译版本将被解释为另一种方式。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16773362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档