为什么平均而言,Python看起来比C/C++慢?我把Python作为我的第一种编程语言来学习,但我才刚刚开始使用C,而且我已经感觉到了明显的不同.

推荐答案

Python是一种比C更高级的语言,这意味着它从您那里抽象出计算机的细节-内存管理、指针等,并允许您以更接近人类思维的方式编写程序.

的确,如果只测量执行时间,C代码的运行速度通常是Python代码的10到100倍.然而,如果还包括开发时间,Python通常会胜过C.对于许多项目来说,开发时间远比运行时性能重要.更长的开发时间直接转化为额外成本、更少的功能和更慢的上市时间.

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

其他解释语言,如Java字节码和.NET字节码的运行速度比Python快,因为标准发行版包括一个在运行时将字节码编译为本机代码的JIT compiler.CPython没有JIT编译器的原因是Python的动态特性使得编写JIT编译器变得困难.progress中有work个需要编写更快的Python运行时,因此您应该期望性能差距在future 会缩小,但标准Python发行版包含强大的JIT编译器可能还需要一段时间.

C++相关问答推荐

带双指针的2D数组

在Windows上构建无聊的SSL x64

如何在C中只使用一个带双方括号([i][j])访问语法的malloc来分配动态大小的2d数组?

为什么我一直收到分段错误?

在 struct 中强制转换空指针

为什么cudaFree不需要数据 struct 的地址?

是否可以使用指针算法在不对齐的情况下在 struct 中相同类型的字段的连续序列之间移动?

函数内的局部字符指针

加密解密工作正常,但返回错误0x80090005

在Apple Silicon上编译x86的Fortran/C程序

如何在C-函数中混合使用C代码和ASM?

将字符串数组传递给C中的函数:`str[dim1][str_size]`vs`*str[dim1]`

这个空指针类型的转换是有效代码还是恶意代码?

对于STM32微控制器,全局偏移表.get和.Got.plt必须为零初始化

为什么二进制文件的大小不会随着静态数据的大小而增加?

发送和接收的消息中的Unix域套接字不匹配

Makefile无法将代码刷新到ATmega328p

将不同类型的指针传递给函数(C)

共享内存未授予父进程权限

无法在线程内用 C 打印?