为什么Python程序通常比C或C ++编写的等效程序慢?

黎曼性:

为什么Python平均看来比C / C ++慢?我学习Python是我的第一门编程语言,但是我只是从C入手,已经感觉到明显的不同。

马克·拜尔斯(Mark Byers):

Python是比C更高级的语言,这意味着它从您那里提取计算机的详细信息-内存管理,指针等,并允许您以更接近人类思维的方式编写程序。

的确,如果仅衡量执行时间,C代码的运行速度通常比Python代码快10至100倍。但是,如果还包括开发时间,Python通常会胜过C。对于许多项目,开发时间比运行时性能更为重要。较长的开发时间直接转化为额外的成本,较少的功能和较慢的上市时间。

在内部,Python代码执行速度较慢的原因是因为代码是在运行时解释的,而不是在编译时编译为本机代码。

其他解释语言(例如Java字节码和.NET字节码)的运行速度比Python快,因为标准发行版包括JIT编译器,可在运行时将字节码编译为本地代码。CPython还没有JIT编译器的原因是因为Python的动态特性使其难以编写。工作进展情况写一个更快的Python运行,所以你应该期望的性能差距在今后可以减少,但它可能会需要一段时间Python标准版包括一个强大的JIT编译器前。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么这个Haskell程序比等效的Python程序慢得多?

为什么程序包名称通常以“ com”开头

用Android编写的Java程序是否比嵌入到iOS的Objective-C的C语言编写的程序慢?

C比Java慢:为什么?

给定任何Java编译程序,是否可以在Clojure中编写等效于字节码的版本?

为什么我的Rust程序比等效的Java程序慢?

为什么此等效程序无法编译?

用C ++编写NSTouchBar程序

为什么在Rust中更新大型静态浮点数组的程序比在C中慢?

为什么在使用python调用C ++程序时未释放静态变量

为什么此C ++程序编译失败?

为什么这个C程序的输出是这样的?

为什么下面编写的两个程序(C中的联合)的输出矛盾?

为什么我的C程序崩溃?

为什么我的C ++程序崩溃了?

为什么此程序在C中崩溃?

为什么我的C程序比同等的C#慢?

为什么在C ++中,重写比编写慢?

为什么<会比<=慢?[C]

为什么大多数Linux程序都是用C编写的?

为什么有时iOS示例应用程序是用C#编写的?

为什么awk脚本比C ++程序快?

Python-等效于循环的C程序

为什么要编译此c ++程序?

为什么在 Visual Studio 中用 C++ 编写 GUI 应用程序的代码与控制台应用程序不同?

为什么操作系统内核通常用 C 或 C++ 编写?

为什么这个 C 程序会崩溃?

Rust - 为什么我的程序执行速度非常慢 - 比使用 Node 用 JavaScript 编写的相同程序慢 5 倍以上

为什么这个 C 程序在 Ubuntu 中什么都不做?