Python和C 性能比较

Python and C++ performance comparison

本文关键字:性能比 比较 性能 Python      更新时间:2023-10-16

在我遇到以下问题的讲座中:给定一个简单的程序,该程序计算大型数据集中的列的总和,正在比较Python和C 实现的性能。主要的瓶颈应读取数据。计算本身相当简单。在第一次执行时,Python版本比C 慢2倍。

然后在第二个执行中,C 程序从4秒提高到1秒,因为显然"第一个执行是I/O绑定,第二个是CPU绑定"。这仍然是有道理的,因为可能会缓存文件内容,从而省略了磁盘的缓慢读数。

然而,尽管缓存温暖,但在第二次运行中,Python实施并没有加快。我知道python很慢,但是慢吗?这是否意味着在Python中执行此简单计算比从磁盘读取约7 GB的慢?

如果总是这样,我想知道为什么我认识的最大的深度学习框架(Pytorch,Tensorflow(具有Python API。例如,对于实时对象检测,将输入(从视频中读取帧,也许是预处理(到网络并解释输出必须慢,而不是在GPU上执行正向传播本身。

我误解了什么吗?谢谢。

没有实现细节的情况并不容易回答,但是通常,Python以其少得多的高速缓存友好而闻名,因为您通常没有选择低级优化缓存行为的选择在Python。但是,这并不总是正确的。您可以直接在Python中优化缓存友好性,或者您将C 代码的一部分用于关键部分。但请始终考虑,您可以在C 中更好地优化代码。因此,如果您有真正关键的代码零件,您想达到速度和效能的每百分比,则应使用C 。这就是原因,许多程序都将C 同时用于原始性能事物,而Python则用于良好的界面和程序结构。