当前位置: 首页 > 工具软件 > Codon > 使用案例 >

体会codon执行python脚本的提速感

简滨海
2023-12-01

python虽然容易上手,但是执行效率一直为人诟病。提升执行效率的方案越来越多,今天试试codon

首先按照工程的介绍执行安装codon

$ /bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)"

以工程中的例子,加上运行时间的打印

$ cat prime.py 
from sys import argv
import time

def is_prime(n):
    factors = 0
    for i in range(2, n):
        if n % i == 0:
            factors += 1
    return factors == 0

limit = int(argv[1])
total = 0

start = time.time()

for i in range(2, limit):
    if is_prime(i):
        total += 1

end = time.time()
this_time = str(end - start)


print(total)
print(this_time)

这个程序是验证指定整数范围内质数的个数。先用原生python计算2万以内的质数个数

$ python3 prime.py 20000
2262
13.66133427619934

然后使用conda运行,时间从13秒多直接缩短为2秒

$ codon run prime.py 20000
2262
2.08852

如果加上优化,就到了2秒之内了

$ codon run -release prime.py 20000
2262
1.91528

如果利用parallelize ,在for循环前加上一行

@par(schedule='dynamic', chunk_size=100, num_threads=16)
for i in range(2, limit):

这次运行起来,竟然缩短为0.3秒多一点!!

$ codon run prime.py 20000
2262
0.343631
$ codon run -release prime.py 20000
2262
0.315421

由此可见,codon对于python执行速度的提升真的是太明显了!

当然codon也有自己的缺点,除了对很多的python包尚不支持外,就连想把total和花费时间打印到一行,尝试了f’',%,format,都不行。不过瑕不掩瑜,codon还是一种很好提升python运行效率的工具。

 类似资料: