Python比C++快且更轻吗?
8 个回答
26
我的经历和这些基准测试结果一样。Python可能运行得比较慢,而且占用的内存也更多。不过,我写的代码少得多,而且第一次就能运行成功,调试的时间也大大减少。因为Python帮我管理内存,我就不需要自己去处理内存的问题,这样省下了很多时间,不用到处找内存泄漏。
你有什么问题呢?
143
在这个比较中,所有运行得最慢的(慢于100倍)Python用法都是一些科学计算,这些计算需要很高的浮点运算速度。其实你根本不应该用Python来做这些事情。正确的做法是导入一个专门处理这些计算的模块,然后就可以和家人一起享受一个轻松的下午。这才是“Python风格”的做法 :)
274
我觉得你对这些数据的理解有点偏差。数据显示,Python的速度大约比C++慢400倍,除了一个特殊情况,Python在内存使用上也更占空间。不过在代码的大小方面,Python绝对是赢家。
我用Python的经验也表明,Python在进行复杂计算时,速度大约比C++慢10到100倍。这背后有很多原因,主要有几个:a) Python是解释型语言,而C++是编译型语言;b) Python没有基本数据类型,所有东西,包括内置类型(比如整数、浮点数等),都是对象;c) Python的列表可以存放不同类型的对象,所以每个元素都需要额外存储关于其类型的信息。这些因素都严重影响了运行速度和内存消耗。
不过,这并不是说我们就要忽视Python。很多软件即使在慢100倍的情况下,也不需要太多时间或内存。开发成本是Python的强项,因为它的风格简单明了。这种在开发成本上的优势往往能抵消额外的CPU和内存资源的消耗。然而,如果没有这种优势,C++就会胜出。