Python与C的性能差异

14 投票
14 回答
16871 浏览
提问于 2025-04-16 03:05

在不同的项目中,我可以选择不同的编程语言,只要能完成任务就行。

我在想,写一个程序用Python和用C语言,性能上到底有什么真实的区别。

要完成的任务种类很多,比如排序文本文件、访问磁盘、访问网络、解析文本文件等等。

比如说,用同样的算法在C语言和Python中排序一个文本文件,真的会有明显的差别吗?

根据你的经验,考虑到现在的CPU(比如i7)的性能,这种差别真的能察觉到吗?(假设这个程序不会让系统崩溃)

14 个回答

10

一般来说,输入输出(IO)相关的工作更依赖于算法,而不是编程语言。在这种情况下,我会选择Python,因为它对字符串的支持非常好,并且有很多简单易用的库可以用来处理文件等操作。

12

C语言在性能方面几乎可以完胜Python,但C语言的编写和维护要困难得多。而且,高性能并不总是值得为了提高开发的时间和难度而付出的代价。

你提到你在做文本文件处理,但你没有说明你处理的文本文件有多少。如果你每小时处理1000万个文件,可能用C语言会更有优势。但如果你每小时只处理100个文件,那为什么不使用Python呢?你真的需要在10毫秒内处理一个文本文件,而不是50毫秒吗?如果你在为未来做规划,可以问问自己:“这是不是我以后可以通过增加硬件来解决的问题?”

在C语言中写出高质量的代码是很难的。确保你能为这份努力的投入找到合理的理由。

38

先用Python编程,直到你遇到性能问题。如果真的遇到了性能问题,先找出问题出在哪里(通常这个问题不是你最初猜的那样)。然后针对这个具体的性能问题进行解决,通常这会涉及到算法或数据结构的调整。如果真的有很少的情况需要用到C语言,你可以只把那部分代码用C写出来,然后在Python代码中调用它。

撰写回答