一行程式碼讓python的執行速度提高100倍,你信嗎?
阿新 • • 發佈:2018-11-11
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、它們提高效能的原理是什麼?你還知道哪些提高效能的方法?
參與話題,有機會獲得以下獎品: