将python与c集成以提高性能是否合理?

Dio*_*nes 3 c python performance

我喜欢几乎所有的东西都使用python,并且总是清楚地知道如果由于某种原因我在我的python代码中找到了瓶颈(由于python的限制),我总是可以使用集成到我的代码中的C脚本.

但是,当我开始阅读有关如何集成python 的指南时.在文章中,作者说:

人们可能希望在C或C++中扩展Python有几个原因,例如:

  • 在现有库中调用函数.
  • 向Python添加新的内置类型
  • 优化代码中的内部循环
  • 将C++类库暴露给Python
  • 将Python嵌入C/C++应用程序中

关于表现没什么.所以我再问一遍,将python与c集成以获得性能是否合理?

Bor*_*éry 8

*优化代码中的内部循环

这不是关于性能吗?


Kai*_*Kai 8

根据我的经验,很少需要使用C进行优化.我更喜欢在Python中识别瓶颈并改进这些领域的算法.使用哈希表,缓存以及通常重新组织数据结构以满足未来需求,可以极大地加速您的程序.随着您的程序开发,您将更好地了解可以预先计算哪种材料,因此不要害怕返回并重做您的存储和算法.此外,寻找机会杀死"一石二鸟",例如在渲染物体时对物体进行分类,而不是做大量的物品.

当所有事情都根据您的知识运作时,我会考虑使用像Psyco这样的优化器.仅通过使用Psyco并在我的程序中添加一行,我就经历了10倍的性能提升.

如果所有其他方法都失败了,请在适当的位置使用C,您将得到您想要的.


Jar*_*red 7

性能是一个广泛的主题,因此您应该更具体.如果程序中的瓶颈涉及大量网络,那么用C/C++重写它可能不会产生任何影响,因为它是网络调用占用时间而不是代码.您最好重写程序的慢速部分以减少网络调用,从而减少程序花在等待entwork IO上的时间.如果你正在做数学密集型的东西,比如求解微分方程,而且你知道有C库可以提供更好的性能,那么你目前在Python中的方式可能需要重写你的程序部分来使用这些库增加它的性能.