【发布时间】:2011-06-06 17:17:27
【问题描述】:
是否可以将 Python 程序转换为 C/C++?
我需要实现几个算法,但我不确定性能差距是否足以证明我在 C/C++ 中所经历的所有痛苦(我不擅长)。我考虑过编写一个简单的算法,并将其与这种转换后的解决方案进行基准测试。如果仅此一项就比 Python 版本快得多,那么我别无选择,只能在 C/C++ 中进行。
【问题讨论】:
-
尽管 Python 在基准测试中损失了很多,但请记住,如果在 Python 中计算在几秒钟内完成,那么 50 倍或 100 倍的减速仍然可以忽略不计,即使你做了很多 I /O 或有一个可怕的算法。而不是问“Python 慢了多少?”你应该问“Python 够快吗?” (老实说,最有可能的是)-这也比基准测试或在这里询问要快。
-
在 python 中实现一个算法是非常快速和直接的......你只需要这样做,然后检查它是否足够快。大多数时候,您可以使用不同的数据结构(字典/集合而不是列表...)或不同的操作来优化算法以更快地运行。无论如何,优化应该发生在您已经实现了算法的初稿并对其进行基准测试/分析之后。
-
@delnan:就我而言,这完全与计算时间有关。如果 C 变体需要减少 x 小时,那么我会花时间让算法运行更长时间/再次运行。我只是想(粗略地)找出 Python 会慢多少——如果只是几个小时,我当然不会使用我不习惯的语言(你可能会破坏实现不良问题的最佳解决方案: P)。
-
@delnan 说的对,Python 可能对很多事情都足够快。即使速度较慢,开发、维护和未来增强的难易程度也是需要考虑的重要因素。
-
“x 小时”?这是多大?您是否对实现进行了基准测试?你有测量值吗?您是否对实施进行了概要分析?还是您试图过早地优化解决方案?
标签: c++ python c code-generation