Python和C之间的性能差异

Pab*_*och 13 c python performance

在不同的项目上工作,只要任务完成,我就可以选择不同的编程语言.

我想知道在Python中编写程序与在C中编写程序之间在性能方面的真正区别是什么.

要完成的任务是多种多样的,例如排序文本文件,磁盘访问,网络访问,文本文件解析.

例如,在C与Python中使用相同的算法排序文本文件之间是否存在明显的差异?

根据您的经验,考虑到当前CPU(i7)的强大功能,它是否真的是一个显着的差异(考虑到它的程序不会让系统瘫痪).

谢谢!:)

jsh*_*hen 37

使用python直到遇到性能问题.如果你有一个弄清楚问题是什么(通常不是你预先猜到的).然后解决可能是算法或数据结构变化的特定性能问题.在极少数情况下,您的问题确实需要C,那么您可以在C中编写该部分并从您的python代码中使用它.

  • +1:让事情先行.然后优化. (22认同)
  • 在编写任何C之前,请查看已编译的Cython语言.Cython编译为可以直接导入Python的共享库. (3认同)

laz*_*tor 11

C几乎可以在任何性能类别中粉碎Python,但是C编写和维护起来要困难得多,并且高性能并不总是值得花费更多的时间和开发难度.

你说你正在做文本文件处理之类的事情,但你省略的是你正在做多少文本文件处理.如果你每小时处理1000万个文件,你可能会因用C语言编写而受益.但如果你每小时处理100个文件,为什么不使用python?你真的需要能够在10ms和50ms之间处理文本文件吗?如果您正在计划未来,请问自己,"这是否可以在以后投入更多硬件?"

用C编写可靠代码很难.确保你可以证明这项投资是合理的.


Cha*_*ion 10

通常,IO绑定工作将更多地取决于算法然后取决于语言.在这种情况下,我会使用Python,因为它将具有第一类字符串和许多易于使用的库来操作文件等.

  • +1:除非它涉及许多计算密集型循环,否则限制因素似乎总是OS资源,如文件系统和进程槽和内存. (3认同)

S.L*_*ott 7

例如,在C与Python中使用相同的算法排序文本文件之间是否存在明显的差异?

是.

明显的差异是这些

  1. Python代码要少得多.

  2. Python代码更容易阅读.

  3. Python支持非常好的单元测试,因此Python代码往往质量更高.

  4. 您可以更快地编写Python代码,因为语言特征较少.例如,没有预处理器可以真正节省大量的黑客攻击.超级经验的C程序员几乎没有注意到它.但所有#include夹心的东西和使.h文件正确是非常耗时的.

  5. Python可以更容易打包和部署,因为您不需要一个非常花哨的make脚本来进行构建.

  • 这个问题与程序员的表现无关.这是关于该计划的表现.因此,这个答案是偏离主题的,只是简单地将C语言改为C语言. (8认同)
  • @mathepic:表现?程序员的表现通常是软件开发中最昂贵的部分.你是说优化程序员的时间没有价值吗? (4认同)
  • @mathepic Makefile与包不同.简单的Makefile很少能在所有平台上完成工作. (3认同)
  • @Steve - 是的,最初的问题可能与表现有关,但有时我们可以通过将问题的方向转移到更相关的方面来帮助提问者. (3认同)
  • @mathepic - 你真的在这里边路钓鱼.有些工作程序员可以用任何语言提高效率.Python只需花费更少的精力就可以提高效率. (2认同)