Python比C ++更快更轻吗?
我一直认为Python的优点是代码的可读性和开发速度,但是时间和内存的使用不如C ++。
这些数据让我非常吃惊。
你的经验告诉你什么关于Python与C ++的时间和内存使用情况?
我想你不正确地阅读这些统计数据。 他们表明,Python的速度比C ++ 慢大约400倍,除了一个例外,Python更像是一个内存pipe理器。 当涉及到源代码大小时,Python赢得了胜利。
我对Python的使用经验表明,在进行任何严格的数字运算时,Python的速度比C ++慢10到100倍。 其原因有很多,主要有:a)解释Python,C ++编译; b)Python没有原语,包括内buildtypes(int,float等)在内的所有东西都是对象; c)Python列表可以保存不同types的对象,因此每个条目都必须存储有关其types的附加数据。 这些都严重阻碍了运行时和内存的消耗。
这是没有理由忽略Python。 许多软件即使在100倍的时间缓慢因素下也不需要太多的时间和内存。 开发成本是Python以简单和简洁的风格赢得的地方。 这种开发成本的提高往往超过了额外的CPU和内存资源的成本。 但是,如果没有,那么C ++会获胜。
所有在枪战中最慢(> 100x)的Python用法都是需要高GFLop / s计数的科学操作。 不pipe怎样,你不应该使用python。 使用python的正确方法是导入一个模块来完成这些计算,然后和家人一起度过一个轻松的下午。 这是Python的方式:)
我的经验和基准一样。 Python可能会很慢,并使用更多的内存。 我写了很多,less得多的代码,它第一次工作,更less的debugging。 由于它为我pipe理内存,我不必做任何内存pipe理,节省了几个小时追查核心泄漏。
你有什么问题?
来源大小并不是一个明智的事情来衡量。 例如,下面的shell脚本:
cat foobar
比Python或C ++等效的要短得多。
另外: Psyco与C ++ 。
这仍然是一个糟糕的比较,因为无论如何,没有人会去做那些基准testing的基准testing。 更好的方法是比较现实应用程序或C ++与NumPy的性能,以了解您的程序是否会明显变慢。
这里的问题是你有两种不同的语言来解决两个不同的问题,比如把C ++和汇编语言进行比较。
Python是用于快速应用程序开发和性能是最小的问题。
C ++ 不适用于快速的应用程序开发,并且inheritance了C语言的速度 – 用于低级编程。
使用易于使用的编程语言也是一样的问题 – 它们很慢(有时甚至是内存占用)。
这些是控制而不是处理的语言。 如果我必须编写应用程序来转换图像,并且也必须使用Python,那么所有的处理都可以用C ++编写,并通过绑定连接到Python,而接口和过程控制将是Python的定义。
我认为这些统计数据显示Python速度更慢,并且为这些基准testing使用了更多的内存 – 您确定您正确地阅读了它们吗?
根据我的经验,主要是用Python编写networking和文件系统绑定的程序,Python在任何重要的方面速度都不会太慢。 对于这种工作,其好处大于成本。