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:
经验分享 程序员 微信小程序 职场和发展