python运行效率优化_Python 的运行效率在未来是否有可能被优化到跟 C++ 近似?

Python慢的原因非常好理解,根本不需要像高赞答案讲的那么复杂。

本质原因是:python是一门动态语言,数据类型和分配空间不需要提前设定好。前一层的结果传过来才知道这是个什么数据类型,然后分配空间给它。优势是:程序员不需要估计变量位宽以分配对应的数据类型,同时不考虑位宽溢出。因为它发现当一个4字节存不了的时候,会自动用8个字节存。用一句话说:python是走一步看一步的。

C++等静态语言都会提前给数据分配好空间,这样有两个特点:1,编译之后,通常在内存条上开辟连续内存空间,就算不连续也能做到虚拟连续;2,默认数据类型不会溢出;

一个生动的例子:假设你是幼儿园老师,安排10个小朋友坐座位。

c++方式就是:提前给每把椅子排齐并且编号,让小孩有序对号入座,如果有个小胖因为太胖坐不进去,那就会哭闹(报错)。python方式是:让每个小孩一个一个去搬椅子坐,如果发现小胖一个椅子坐不下,那就让他搬两个。小胖安排进去之后,小胖后面的孩子也一人搬两个坐。

这就是c++比python快的重要原因。python在追求“易用性”的前提下,丢弃了数据类型预分配等底层操作,从而导致速度大大降低。

本人做过一个用c++加速python的实验,大家有兴趣可以看看:木盏:【简单实例】如何使用C++加速python程序​zhuanlan.zhihu.compython运行效率优化_Python 的运行效率在未来是否有可能被优化到跟 C++ 近似?_第1张图片

总结

仅从语言特性的角度来看,纯python程序的性能追平cpp的可能性不大。不过可以通过各种加速手段,实现很大程度地接近。

另外,这帖子里有不少安利Julia的,这个mit开发的语言我也研究过一段时间,Julia1.0 并不是太稳定,而且明显社区活跃度是硬伤。正式版发布一年来现在也没激起什么波澜,我建议初学者慎入坑julia。

你可能感兴趣的:(python运行效率优化)