我需要使用元启发式算法来解决 Python 代码库上的优化问题。
元启发式通常需要用 C++ 或 Java 编写,因为它们涉及大量迭代,而 Python 从这个角度来看很弱。
问题:
- 是否存在任何将更快的语言包装为 C++/Java 的 Python 元启发式包?
- 是否存在任何基于 numba 上的 cython 的 Python 元启发式软件包?
- 其他解决方案?
我需要使用元启发式算法来解决 Python 代码库上的优化问题。
元启发式通常需要用 C++ 或 Java 编写,因为它们涉及大量迭代,而 Python 从这个角度来看很弱。
问题:
从长远来看,如果你有一个 Python 版本(或自己实现它),使用PyPy而不是 Python 运行它可能会使事情变得更快,因为它非常适合使用 Python 内置函数和许多循环的代码。它通过垃圾收集等技巧很好地优化了这些情况。最新版本还支持 Python3.5 和 3.6 以及 NumPy。
从他们的网站来看,主要好处是:
速度:得益于其即时编译器,Python 程序通常在 PyPy 上运行得更快。(什么是 JIT 编译器?)
“如果你想让你的代码运行得更快,你应该只使用 PyPy。” — Guido van Rossum(Python 的创造者)
内存使用:需要大量内存的 Python 程序(数百 MB 或更多)最终可能会比 CPython 占用更少的空间。
兼容性:PyPy 与现有的 python 代码高度兼容。它支持 cffi 并且可以运行流行的 python 库,如 twisted 和 django。
无堆栈:PyPy 默认支持无堆栈模式,为海量并发提供微线程。