一种流行的软件开发模式似乎是:
- 研究 Python 中的逻辑和算法。
- 分析以找出慢位所在的位置。
- 用 C 替换那些。
- 交付在高级和快速之间取得最佳平衡的代码。
我说流行只是因为我看到人们谈论它是一个好主意。
但是有没有大型项目实际使用过这种方法呢?最好是免费软件项目,这样我就可以看看他们是如何做到的 - 也许还能学习一些最佳实践。
最佳答案
人们处理开发的方式有很多种。
有时候人家按照你的三步走,发现慢一点是因为外部环境,所以把Python改成C也解决不了问题。这种缓慢有时可以在系统端解决,有时可以通过应用不同的算法在 Python 中解决。例如,您可以缓存网络响应,这样您就不必每次都访问网络,或者在 SQL 中,您可以将工作卸载到在服务器上运行的“存储过程”并减少结果集的大小。通常,当您确实有需要用 C 重写的东西时,要做的第一件事就是寻找一个预先存在的库,如果尚不存在,则创建一个 Python 包装器。在您之前,有很多人已经走上了这条道路。
通常第 1 步是研究应用程序架构,怀疑某些区域可能存在性能问题,然后选择一个 C 库(可能已经为 Python 包装)并使用它。然后第 2 步只是确认没有真正需要解决的大性能问题。
我想说,对于拥有一个或多个经验丰富的开发人员的团队来说,最好从一开始就尝试预测性能瓶颈并使用预先存在的模块来缓解它们。如果您是 Python 的初学者,那么您的 3 步过程是完全有效的,即开始构建和测试代码,知道有一个分析器和快速 C 模块的可能性(如果您需要的话)。然后是 psyco,以及用于将应用程序卡住为二进制可执行文件的各种工具。
如果您知道自己需要使用某些 C 或 C++ 模块,则另一种方法是从头开始用 C 编写应用程序,但嵌入 Python 来完成大部分工作。这对于经验丰富的 C 或 C++ 开发人员来说效果很好,因为他们对用 C 编写的代码类型有一个大致的了解。
关于python - Python-then-profile-then-C 设计模式的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582718/