为什么人们说python很慢因为它被解释了?它有.pyc文件

use*_*278 19 python interpreter compiled

为什么人们只需要在需要优化时使用已编译的python文件?然后代码将不必互相编译然后编译.

有什么我想念的吗?在我看来,这似乎是一个简单的问题.

bub*_*uba 34

我相信这足以纠正你的误解.

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

来源:https://docs.python.org/2/tutorial/modules.html#packages

  • @sfdcfox关于它没有"当然不是".速度是否重要取决于你在做什么. (15认同)
  • @sfdcfox:试过一些C或C++或者fortran或者......曾经?是的,您可以用这些语言编写不可移植的代码,但Java,python,...也是如此. (3认同)
  • @Deduplicator我写了十几种语言或更多,其中许多是我经常使用的.但我们不是在这里逐条列出我的简历.我的观点是(现在仍然是),*假设它适合于任务,*Python"通常"比C更便携,代价是*可接受的小*性能损失.Java也比C更"便携",同样可以比C更快地降低速度.另外,一个称职的Python开发人员可以编写比无能的C开发人员更快运行的代码,并且仍然可以在多个平台上运行. (3认同)
  • @sfdcfox尝试以解释语言运行大规模物理模拟,然后在编译后再次尝试.从解释的代码开始 - 您将有足够的时间编写已编译的代码,运行它并在解释的代码完成之前分析数据. (2认同)
  • 这是有争议的......大多数解释性语言的运行速度与C在现代硬件上使用现代编译器一样快.但是,当然,我必须指出编程的"正确工具"条款.你不能有效地使用螺丝刀作为锯子,当你需要*低级语言的硬件加速时,你也不能正确地使用Python,比如C.没有经验丰富的开发人员会在Python中编写实时操作系统. ,因为它没有意义.我的评论仅仅是说当"可移植性"胜过"速度"时,Python是完全可以接受的. (2认同)
  • @sfdcfox你的问题是没有提到便携式通用计算.只是声明你不明白为什么有人会选择使用别的东西.科学计算是解释性语言不起作用的一个特定应用程序 - 这就是SciPy和NumPy调用用C或Fortran编写的本机优化例程的原因.你的论点是它会"(稍微)慢" - 我在争论说,在我处理的情况下,没有什么可以轻微的.这是可能的或不可能的区别. (2认同)
  • @ tpg2114再次,我指的是"使用正确的工具".我个人不会将Python用于任何严肃的事情,但这更像是个人偏好而不是任何东西.如果我听起来像"Python是世界上唯一有用的语言",我很抱歉.我讨厌Python.我只是想指出脚本语言*通常是*可接受的替代语言,可以更接近硬件.如果要选择在Python中执行任务,那将是因为速度不如可移植性那么重要. (2认同)

Iva*_*hko 11

Python即使从pyc文件中读取也会被解释.正如在这个答案中已经说过的那样,pyc文件只能加速程序启动,而不是执行.存储在pyc文件中的命令不是机器代码,它只是python级别的命令,无论如何都会被python解释器解释.另一方面,当您使用用C编写的程序时,此类程序的可执行文件由机器代码组成,这些机器代码由CPU直接"解释".