- from numba import jit
它的应用异常简单。我们仅须要向想要编译的函数添加一点润饰。我们的代码变成了:
- @jit
- def fib_seq_numba(n):
- if n < 2:
- return n
- (a,b) = (1,0)
- for i in range(n-1):
- (a,b) = (a+b,a)
- return a
对它计时会获得:
向量化
- 1000000 loops, best of 3:225 ns per loop
“我们在 97% 的时光应当忘记较小的效力:不成熟的优化是万恶之源。”
比无类型的 Cython 代码更快,比最初的 Python 代码快约 16,000 倍!
应用 Numpy
我们如今来看看第二项基准测试。它是快速排序算法的实现。Julia 团队应用了以下 Python 代码:
- def qsort_kernel(a, lo, hi):
- i = lo
- j = hi
- while i < hi:
- pivot = a[(lo+hi) // 2]
- while i <= j:
- while a[i] < pivot:
- i += 1
- while a[j] > pivot:
- j -= 1
- if i <= j:
- a[i], a[j] = a[j], a[i]
- i += 1
- j -= 1
- if lo < j:
推荐阅读
Aporeto是一家“云原生”的安然始创公司,旨在确保那些不受信的IT情况的安然性。该公司方才在A轮融资——也就是岁尾产品宣布之前——获得了>>>详细阅读
地址:http://www.17bianji.com/lsqh/35343.html
1/2 1