我听说可以使用PyPy运行Python程序,它使用JIT编译器而不是解释器来编译,因此速度快得多。
以下程序可以找到数字600851475143的最大质因数:
import numpy as np
nr = 600851475143
n = 2
while n <= np.sqrt(nr):
if nr%n == 0:
nr = nr/n
n += 1
print(nr)
如何使用PyPy运行这个程序?
我知道他们的网站上有相关文档,但是我不理解,希望能得到演示。
C
编译的。实际上与C
毫无关系。它在JIT下运行。 - simonzackmath.sqrt
可以立即实现 10 倍的加速。 - Veedracnp.sqrt
对于 JIT 来说太复杂了,无法正确地进行内联。 - Veedracn
,则速度将快两倍。 - Veedrac-O
)和C++(-O3
)都只需要约0.4秒,因此PyPy甚至没有花费两倍的时间! - Veedrac