前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python这几个库,快到飞起!

Python这几个库,快到飞起!

作者头像
行哥玩Python
发布2021-12-09 15:22:19
5060
发布2021-12-09 15:22:19
举报
文章被收录于专栏:一行数据一行数据

大家好,我是一行

最近看到知乎有这么一个问题,有哪些Python库让你相见恨晚?

作为Python老司机来说,这样的库不要太多了,从地图绘制到算法优化、从调试工具到代码分析,python的生态里有大量的库资源可以给Pythoner使用

但是对于不太了解的python人们,总会评价说python解释性语言运行速度慢吧啦吧啦的

所以一行这里分享几个高性能Python库/框架,下次再遇到这种评价,直接就把这些库/框架怼到他脸上

1Cython

Cython结合了Python和C的语法,可以简单的认为就是给Python加上了静态类型后的语法,用户可以使用大部分的Python语法,而不需要大幅度调整主要的程序逻辑与算法。

由于代码会直接编译为二进制程序,所以性能较Python会有极大提升

Cython会将源代码转译成C或C++语法后,自动包装上函数调用界面生成.pyd(或 .so ,因操作系统而异)后缀的二进制档,所以可当成普通的Python库。

Cython性能虽然逊于本地的C/C++库,但由于Cython语法的易用性可以缩短开发时间,同时Cython也可以用于将C/C++代码封装为Python库

定义变量可以使用关键字cdef定义变量

代码语言:javascript
复制
cdef int a = 1

定义函数可以使用关键字def、cdef、或cpdef定义函数

代码语言:javascript
复制
cdef int f(int x):
    return x + 1

使用关键字cdef定义的函数,会被Cython编译成C语言,所以速度较快,但无法被Python使用;只有使用def或cpdef定义的函数可以在Python中使用。

2PyPy

PyPy是一种Python编程语言实现,因为是一种即时编译器,就是在代码执行过程中编译,所以速度要比CPython快的多

通过速度对比,PyPy平均要比CPython快4.2倍

就连Python作者吉多都说过,如果你想让代码更快一些,应该去使用PyPy

"If you want your code to run faster, you should probably just use PyPy."

-- Guido van Rossum (creator of Python)

但是要注意,只有一种情况PyPy是无法加速Python的运行

那就是代码原本运行时间就不到几秒钟,这种情况下是显现不出来PyPy的作用

3Stackless Python

Stackless Python或称简称Stackless,是一个Python编程语言解释器,这么称呼的原因是它避免了依赖C调用栈为自己的堆栈。

Stackless Python的最突出特征是微线程,就是说一个运行的程序被分解成微线程,由语言解释器自身而非操作系统内核管理,上下文切换和任务调度纯粹在解释器内完成

微线程管理在同一个CPU核心上一个程序的不同子任务的执行,Stackless Python不移除Python的全局解释器锁, 也不使用多线程或多进程。

所以它只允许在一个共享CPU核心上的协作式多任务而非并行,最初不能获得而现在有了某种形式的抢占

像大规模多玩家在线游戏Eve Online的实现和IronPort的邮件平台都是在使用Stackless Python

4Pyston

Pyston使用 LLVM 和现代 JIT 技术构建的 Python 实现,目标是为了获得很好的性能

具体使用可以参考它的官网 https://blog.pyston.org/

5PeachPy

PeachPy是嵌入 Python 的 x86-64 汇编器。

它自动化了一些细节,并允许使用 Python 生成重复的汇编代码序列。

而且它还有以下这些功能:

  • 元数据文件的自动生成
  • 自动适应不同的调用约定和 ABIs
  • 汇编编程中常规任务的自动化
  • 自动分配寄存器
  • 支持 x86-64 指令,最高可达 AVX-512 和 SHA
  • 基于 Python 的元编程和代码生成
  • 兼容 Python 2 和 Python 3,CPython 和 PyPy

6最后

你知道的越多,你不知道的就越多

对于Python的性能来说,如果要说它慢,那只是没有去寻找提升Python性能的办法

如果非要说Python性能差,先把上面这5高性能Python框架拿用一下,再下定论

这就是今天的分享啦,我是一行,技术永不眠,我们下期见!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一行数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1Cython
  • 2PyPy
  • 3Stackless Python
  • 4Pyston
  • 5PeachPy
  • 6最后
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档