内容简介:探索python性能优化工具,发现了numba. 只需要给函数加上装饰器就可以。比cython和pypy方便多了。numba是为了提高numpy速度而开发的,使用llvm将python代码翻译为bitcode,并在bitcode外面做了一层包装,让python可以调用通过numba翻译的代码由于经过llvm优化并可在机器上直接执行,效率将有所提高,对海量数据处理非常有帮助
简介
探索 python 性能优化工具,发现了numba. 只需要给函数加上装饰器就可以。比cython和pypy方便多了。
numba是什么
numba是为了提高numpy速度而开发的,使用llvm将python代码翻译为bitcode,并在bitcode外面做了一层包装,让python可以调用
通过numba翻译的代码由于经过llvm优化并可在机器上直接执行,效率将有所提高,对海量数据处理非常有帮助
numba可以解决什么问题
1.提高numpy速度 2.解决python在计算上的性能问题
原理
通过llvm编译器将python代码转换成机器码,提高执行效率。
初试
环境说明
python3.6 fedora
安装
pip install numba
示例
#斐波那契数列 import time from numba import jit @jit def fib(n): if n<=2 : return 1; else: return fib(n-1)+fib(n-2); start = time.time() fib(50) end = time.time() print("python3+numba cost_seconds:", end-start) #结果。结果很明显numba可以让你的python飞起来 python3 20.24455213546753秒 python3+numba 0.5986552238464355秒
文档
* 官方/文档
http://numba.pydata.org/
http://numba.pydata.org/numba-doc/latest/index.html
* 官方例子
https://numba.pydata.org/numba-examples/
* github
https://github.com/numba/numba
适用范围
操作系统: windows32/64, osx, linux32/64 架构: x86, x86_64, ppc64le. Experimental on armv7l, armv8l (aarch64). GPUs: Nvidia CUDA. Experimental on AMD ROC CPython Numpy1.10以上
注意要点
numba只适合解决python项目在计算上的性能问题,否则会导致项目性能下降。
引入前最好足够测试确保使用numba的姿势正确
来源
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
500 Lines or Less
Amy Brown、Michael DiBernardo / 2016-6-28 / USD 35.00
This book provides you with the chance to study how 26 experienced programmers think when they are building something new. The programs you will read about in this book were all written from scratch t......一起来看看 《500 Lines or Less》 这本书的介绍吧!
URL 编码/解码
URL 编码/解码
UNIX 时间戳转换
UNIX 时间戳转换