Python 执行速度慢只是因为它是解释型语言吗?

popop
  • 126

如果只是因为它是解释型语言的话,那有没有语法像Python一样简洁的编译型语言呐?

我也好奇这个问题,求解!

回复
阅读 7.1k
4 个回答

Python 不是解释型语言,事实上也没有「解释型」语言这个分类。

Python 性能略有不佳的原因可能有几个:

首先是 Python 希望自己是一个简单和优雅的语言,需要性能的组件通常用 C 实现,没有太多改进性能的动力。

然后 Python 具有垃圾回收和自动的内存管理功能,并且采用动态类型系统,会在运行时进行类型检查,这会不可避免地略微影响性能,使其不如静态类型(Java)或没有垃圾回收(C/C++)的语言。

摘自维基百科:

  • 「Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。」
  • 「因为Python属于动态类型语言,动态类型语言是在运行期间检查数据的类型,不得不保持描述变量值的实际类型标记,程序在每次操作变量时,需要执行数据依赖分支」
bf
  • 8k

python 速度並不一定慢,試試 pypy。

解釋性語言不見得就慢,如 JIT。

高度的抽象隐藏大量的细节,暴漏给用户最简单的接口,你写的一行代码,你觉得很舒服优雅很简单,但是支撑它正确运行的背后隐藏了大量的逻辑.这些逻辑被转化为较为低级的语言实现将会产生大量的代码.Python的动态解释也需要额外的计算和空间来实现,许多原因导致他看上去很慢,但是你用其他语言实现同样的事情,你可能需要花费更多的时间和更大的空间.这取决于你对另一种语言的理解深度.当然,理论上,python能做到的事情,c可以做的更好,但是,因为你永远能找到对特定场景的优化.对于公共的场景而言,python确实已经无可挑剔了.

解释型语言是一个问题,还有gc的机制问题,python的引用计数确实会慢些,堆栈式的,lua基于 Register-based virtual machine。 不过,基本有瓶颈的地方,加一些c扩展应该就好了,或者用pypy,cython这种实现。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏