一份可以令 Python 变快的工具清单_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一份可以令 python 变快的工具清单无论什么时候,软件的性能提升都是软件开发重要的一步,假如你只想做一个一般的码农,大可不必理睬,但是要想提升能力,软件性能的讨论是一个跨不过去的坎,不管是新的分布式高并发框架学习,还是新的算法学习,以及代码重构等都是提升性能的一种手段。 固然今日在这里不讲那些大而高深的学问,给大家共享一些提升软件性能的优化代码的工具,使其让代码越发的简洁和快速,固然这么工具无法替代算法设计,但是也能让python加速无数倍。 1.numpy、scipy、sage和pandas numpy的核心是一个多维数字数组的实现。并且除了这个数据结构之外,还实现了若干个函数和运算符,

2、使其支持高效的数组运算。并且精简了被调用的次数,以便于被用来举行极其高效的数学运算。 scipy和sage可以说是一个整合工具,内置了numpy外还内置了许多其他的不同的工具,从而使其可以用于特定科学、数学和高性能计算的模块。 pandas则是一个侧重于数据分析的工具。假如需要处理大量半结构化的数据,也可能会用到pandas相关的工具,比如blaze。 2.pypy、pyston、parakeet、psyco 我们知道让代码运行的更快并且侵入性最小的就是用法实时编译器(jit编译)。在以前我们可以安装psyco,然后调用其psyco.full()的函数,代码运行速度显然提升。 然而现如今许多p

3、syco项目已经停止了维护,不过类似的功能却在pypy中得以继承。 pypy为了便利分析、优化和翻译,用法python语言将python重新实现了一遍,这样就可以jit编译。而且pypy可以挺直将代码翻译成像c那样的性能更高的语言。 此外还有一个pyston,但到现在还有无数不完美的地方。它是一个与llvm平台较为临近的python的jit编译器,并且无数时候已经优于python的实现。 3.gpulib、pystream、pycuda和pyopencl 这四个的作用都是用来处理图像单元以实现加速代码的作用,并且相较于代码优化从软件层动身,他们是从硬件层面上举行加速,假如你的电脑有一个强大的g

4、pu,我们彻低可以用法gpu来举行计算,以此削减cpu的珍贵资源。 4.pyrex、cython、numba和shedskin 这四个项目都致力于将python代码翻译为c、c+和llvm的代码。shedskin能够将代码编译为c+语言。pyrex和cython主要目的是将python代码编译为c语言。cython也是pyrex的一个分支。而且cython还有numpy数组的额外支持。 5.swig、f2py和boost.python 这些工具可以将其他的语言封装为python的模块。第一个可以封装c/c+语言。f2py可以封装fortran。boost.python可以封装c+语言。 sui

5、g只要启动一个指令行工具,往里面输入c或者c+的头文件,封装器代码就会自动生成。除了python,而且可以成为其他语言的封装器,比如java和php。 6.ctypes、llvm-py和corepy2 这些模块可以协助我们实现python底层对象的操作。ctypes模块可以用于在内存中构建编译c的对象。并且调用分享库中的c的函数。不过ctypes已经包含在python的标准库里面了。 llvm-py主要提供llvm的python接口。以便于构建代码,然后编译他们。也可以在python中构建它的编译器。固然搞出自己编程语言也是可以的。 corepy2也可以举行加速,不过这个加速是运行在汇编层的。 7.weave、cinpy和pyinline 这三个包,就可以让我们在python代码中挺直用法c语言或者其他的高级语言。混合代码,依旧可以保持干净。可以用法python代码的字符串的多行特性,可以使其他的代码根据自身的风格来举行排版。 8.其他工具 假如我们要节约内存,就不能用法jit了。普通jit都太耗费内存。有一句话说的很对,时光和内存常常不能兼得,而我们在工程开发中,总是要寻觅他们的平衡点。 至于其他的一些东西,比如m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论