1. 程式人生 > >一行程式碼讓python的執行速度提高100倍,你信嗎?

一行程式碼讓python的執行速度提高100倍,你信嗎?

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、它們提高效能的原理是什麼?你還知道哪些提高效能的方法?

參與話題,有機會獲得以下獎品: