python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差。
“一行代码让python的运行速度提高100倍”这绝不是哗众取宠的论调。
我们来看一下这个最简单的例子,从1一直累加到1亿。
最原始的代码:
import time
def foo(x,y):
tt = time.time()
s = 0
for i in range(x,y):
s += i
print('Time used: {} sec'.format(time.time()-tt))
return s
print(foo(1,100000000))
结果:
Time used: 6.779874801635742 sec
4999999950000000
我们来加一行代码,再看看结果:
from numba import jit
import time
@jit
def foo(x,y):
tt = time.time()
s = 0
for i in range(x,y):
s += i
print('Time used: {} sec'.format(time.time()-tt))
return s
print(foo(1,100000000))
结果:
Time used: 0.04680037498474121 sec
4999999950000000
是不是快了100多倍呢?
就因为使用了 numba库的jit模块。
那么问题来了:
1、你知道 numba 吗?为啥numba库的jit模块那么牛掰?
2、Python你可能不了解,其它语言有类似功能的库或者组件吗?
3、它们提高性能的原理是什么?你还知道哪些提高性能的方法?
参与话题,有机会获得以下奖品: