python性能优化的比较:numba,pypy, cython
python 程序性能优化的套路一般有两种:1)jit, 即just in time compiler, 即时编译器,在运行时将某些函数编译成二进程代码,使用这种方式的有:numba 和pypy;2)将python代码转换成c++/c代码,然后编译执行,这种方式有:cython和nuitka。总而言之,转换成c++/c代码以后编译成二进制文件执行的效率比用numba和pypy即时编译执行的效率要高。
1. 首先看一下python写的求质数的函数 以及 用 numba的jit优化的函数
# main.py
# 纯python语言写的求质数的代码
def primes_python(nb_primes):
p = []
n = 2
while len(p) < nb_primes:
# Is n prime?
for i in p:
if n % i == 0:
break
# If no break occurred in the loop
else:
p.append(n)
n += 1
return p
# 使用numba的jit优化的代码,只需要在上面的函数加一行代码
from numba import jit
@jit
def primes_jit(nb_primes):
p = []
n = 2
while len(p) < nb_primes:
# Is n prime?
for i in p:
if n % i == 0:
