Python和C 性能比较
Python and C++ performance comparison
在我遇到以下问题的讲座中:给定一个简单的程序,该程序计算大型数据集中的列的总和,正在比较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则用于良好的界面和程序结构。
相关文章:
- 为什么constexpr的性能比正常表达式差
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- 如何比较两个函数的速度和性能
- 在现代C++中,侵入式容器是否仍然比非侵入式容器具有性能优势?
- 通过默认复制构造函数比较 C++ 字符串是否会影响性能,原因为何?
- 每个编译器的C++性能,比C#慢200倍
- 性能比较:f(std::string&&) vs f(T&&)
- C++多线程性能比单线程代码慢
- 多线程功能性能比单线螺纹差
- 做得比比较少或小于或等于或等于比较更有效
- 在 64 位英特尔架构中比较uint8_t值是否比比较uint32_t慢
- 为什么 std::make_shared<>() 的性能比 boost::make_shared() 好得多?
- 为什么比较两次 char 变量比比较一次短变量更快
- C和C++文件读取性能的比较
- 为什么预分配的函数指针的性能比分支差
- 放炮的性能比先放炮后复核的性能差
- 为什么我的散点代码的性能比Vc SIMD更好
- 为什么 C++ fseek/fread 的性能比 C# FileStream 的 Seek/Read 高几倍
- 使用Eigen的性能比使用我自己的类更差
- OpenMP C++并行性能比八核集群更好的双核笔记本电脑