编程语言 - Python 执行速度慢只是因为它是解释型语言吗?
巴扎黑
巴扎黑 2017-04-17 13:40:28
[Python讨论组]

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

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

巴扎黑
巴扎黑

全部回复(4)
高洛峰

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

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

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

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

摘自维基百科:

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

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

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

ringa_lee

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

PHPz

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号