Python比C ++更快更轻吗?

时间:2009-04-29 09:51:35

标签: c++ python performance memory statistics

我一直认为Python的优点是代码可读性和开发速度,但时间和内存使用率并不如C ++那么好。

These stats让我非常努力。

您的经验告诉您有关Python与C ++时间和内存使用情况的信息?

8 个答案:

答案 0 :(得分:206)

我认为你正在错误地阅读这些统计数据。他们表明Python比C ++慢了大约400倍 ,除了单个案例,Python更像是一个内存耗尽。但是,当谈到源大小时,Python会胜出。

我使用Python的经历显示了相同的趋势,即在进行任何严重的数字运算时,Python的速度比C ++慢10到100倍。这有很多原因,主要原因是:a)Python被解释,而C ++被编译; b)Python没有原语,包括内置类型(int,float等)在内的所有东西都是对象; c)Python列表可以包含不同类型的对象,因此每个条目都必须存储有关其类型的其他数据。这些都严重阻碍了运行时和内存消耗。

这是没有理由忽略Python。即使使用100倍的慢速因子,许多软件也不需要太多时间或内存。开发成本是Python以简单简洁的方式获胜的地方。这种开发成本的提高通常会超过额外的CPU和内存资源的成本。但是,如果没有,则C ++获胜。

答案 1 :(得分:118)

在枪战中使用Python的所有最慢(> 100x)用法都是需要高GFlop / s计数的科学操作。不管怎么说,你不应该使用python。使用python的正确方法是导入执行这些计算的模块,然后与家人一起度过一个轻松的下午。 是pythonic方式:)

答案 2 :(得分:25)

我的经验与基准相同。 Python可能很慢并且使用更多内存。我写了很多,更少的代码,它第一次工作,调试少得多。由于它为我管理内存,我不需要做任何内存管理,节省了追查核心泄漏的时间。

你的问题是什么?

答案 3 :(得分:14)

源尺寸并不是一个明智的测量方法。例如,以下shell脚本:

cat foobar

比Python或C ++等同。

答案 4 :(得分:6)

另外:Psyco vs. C++

这仍然是一个糟糕的比较,因为无论如何没有人会做数字笨重的东西基准测试倾向于专注于纯Python。更好的方法是比较实际应用程序(C ++与NumPy)的性能,以了解您的程序是否明显变慢。

答案 5 :(得分:3)

这里的问题是你有两种不同的语言可以解决两个不同的问题......就像比较C ++和汇编程序一样。

Python用于快速应用程序开发,以及性能最低限度的时候。

C ++ 用于快速应用程序开发,并继承了C语言的传统 - 用于低级编程。

答案 6 :(得分:2)

我认为这些统计数据显示Python速度慢得多,并且使用更多内存用于那些基准测试 - 你确定你正在以正确的方式阅读它们吗?

根据我的经验,主要是在Python中编写网络和文件系统绑定程序,Python在任何方面都不会显着减慢。对于这种工作,它的好处超过了它的成本。

答案 7 :(得分:2)

与托管且易于使用的编程语言一样,问题一如既往 - 它们很慢(有时甚至是吃掉内存)。

这些是用于控制而不是处理的语言。如果我必须编写应用程序来转换图像并且不得不使用Python,那么所有处理都可以用C ++编写并通过绑定连接到Python,而接口和进程控制将是定义Python。