炸裂!速度百倍提升,高性能 Python 编译器 Codon 火了!

Python codon库全面介绍 场景推荐工具生物序列分析(密码子翻译/基因处理)Biopython高性能计算/替代C++加速Python代码Codon 编译器简单密码子操作(教学/小工具)原生Python + 字典。 阅读详情

来源:机器之心

众所周知,Python 是一门简单易学、具有强大功能的编程语言,在各种用户使用统计榜单中总是名列前茅。相应地,围绕 Python,研究者开发了各种便捷工具,以更好的服务于这门语言。

编译器充当着高级语言与机器之间的翻译官,不同版本的 Python 编译器已被开发出来,下面我们将为大家介绍一款新的高性能 Python 编译器:Codon。该项目上线短短几天,已收获 2.2k 星。

aa4afffbf6e32deb8523e016e6157c05.png

项目地址:https://github.com/exaloop/codon

作为高性能 Python 编译器,Codon 可将 Python 代码编译为本机机器代码,而无需任何运行时开销。在单线程上,Python 的典型加速大约为 10-100 倍或更多。Codon 的性能通常与 C/C++ 的性能相当。与 Python 不同,Codon 支持本机多线程,这可以使速度提高很多倍。Codon 可通过插件基础结构进行扩展,它允许用户合并新的库、编译器优化甚至关键字。

Codon 框架是完全模块化和可扩展的,允许无缝集成新模块、编译器优化、领域特定语言等,并积极为生物信息学和量化金融等多个领域开发新的 Codon 扩展。

486389b7c15deed109ea9f08fb997ed4.pngCodon Pipeline

这个一经发布就疯狂揽星的编译器效果如何呢?下面我们来看看一些基准测试结果。

基准测试

以下是来自 Codon 基准测试套件的结果,比较了 Python、PyPy、C++ 和 Codon 在一系列任务和应用程序上的表现。

基准测试在以下设置上运行:

eb915618769cb37719d6b8f4120ea730.png

148bd79b4f4cc59a99a64fa396cfdd1f.png

Python、PyPy、Codon 的对比

bab6c788faa1ae3d33939fd1009f5978.png

612e8cbf2d0b06cb88ed8d3293f704b9.png

45fbc50107746811737571de21a8ed4c.png

0dde35589cf5804767bcccd88b67f2df.png

7c10ace5f41fbd5eee07cc848a939302.png

cfee56666a0362984e1e4baa03e54fc2.png

1ed469024c6eb827eefa36648dc1732c.png

Python、PyPy、C++ 、Codon 的对比

752ea9fcfdc38a374daf3e0d90087def.png

22d4cc77b2d37735ab826a6ae1a8e67d.png

f286474e46201e809eaaaa5457cfa509.png

da5a136ae6b3c892a3785d959b3e75e1.png

几种语言的具体对比如下:

Codon 尽可能地遵循 CPython 语法、语义和 API,但在一些特殊情况下,考虑性能原因,Codon 与 CPython 会有些不同,例如 Codon 为 64 位 int,CPython 是任意宽度 int。在性能方面,CPython 的加速通常是 10-100 倍的加速。

虽然 Codon 确实提供了一个类似于 Numba 的 JIT 装饰器,但 Codon 通常是一个提前(ahead-of-time)编译器,可以将端到端程序编译为本机代码。它还支持编译更广泛的 Python 构造和库集。

PyPy 的目标是成为 CPython 的简易替代品,而 Codon 在一些地方有所不同,这些不同主要体现在消除动态运行时或虚拟机上,从而获得更好的性能。

Codon 通常生成与等效的 C 或 C++ 程序相同的代码,有时可以生成比 C/C++ 编译器更好的代码。原因有很多,例如更好的容器实现,Codon 不使用目标文件和内联所有库代码,或者不使用 C 执行的特定于 Codon 的编译器优化或 C++。

Codon 的编译过程实际上更接近 C++ 而不是 Julia。Julia 是一种动态类型语言,它执行类型推断作为优化,而 Codon 类型是提前检查整个程序。Codon 还试图通过采用 Python 的语法和语义来规避新语言的学习曲线。

常见问题解答

虽然 Codon 几乎支持 Python 的所有语法,但它并不是一个简单的替代品,大型代码库可能需要修改才能通过 Codon 编译器运行。例如,一些 Python 的模块还没有在 Codon 中实现,一些 Python 的动态特性是不允许的。Codon 编译器会生成详细的错误消息,以帮助识别和解决任何不兼容问题。Codon 支持无缝的 Python 互操作性,以处理需要特定 Python 库或动态性的情况。

我想使用 Codon,但我有一个大型 Python 代码库且不想移植,怎么办?

你可以通过 @codon.jit 装饰器来使用 Codon,这将只编译带注释的函数,并自动处理与 Codon 之间的数据转换。它还允许使用任何特定于 Codon 的模块或扩展,例如多线程。

与其他语言和框架的互通性如何?

互通性是 Codon 的优先事项。我们不希望使用 Codon 使用户无法使用现有的其他优秀框架和库。Codon 支持与 Python 和 C/C++ 的完全互通。

Codon 是否使用垃圾收集?

是的,Codon 使用了 Boehm 垃圾收集器。

Codon 不支持 Python 模块 X 或函数 Y?

虽然 Codon 涵盖了 Python 标准库的一个相当大的子集,但它还没有涵盖每个模块的每个函数。请注意,仍然可以通过 Python 调用缺少的函数 from python import。许多缺少 Codon 本地实现的函数(例如 I/O 或 OS 相关功能)通常不会实现 Codon 的实质性加速。

对于我的应用程序,Codon 并不比 Python 快?

大部分时间用在 C 语言实现的库代码中的应用程序通常不会在 Codon 中看到实质性的性能提升。同样地,受 I/O 或网络限制的应用程序在 Codon 中也会遇到相同的瓶颈。

对于我的应用程序,Codon 比 Python 慢?

如果是这样,请将 Codon 明显比 Python 慢的情况报告给问题跟踪器。

Codon 是免费的吗?

对于非生产用途,Codon 始终是免费的。用户可以免费将 Codon 用于个人、学术或其他非商业应用。

Codon 是开源的吗?

Codon 是根据商业源代码许可证 (BSL) 获得许可的,它的源代码是公开可用的,并且可以免费用于非生产用途。BSL 在技术上不是「开源」许可证,尽管在许多情况下你仍然可以像对待任何其他开源项目一样对待 Codon。重要的是,根据 BSL,每个版本的 Codon 都会在 3 年后转换到实际的开源许可证(特别是 Apache)。


最后给大家送书6本,有兴趣的小伙伴可以看看

7ed17a93b63231e1fc6aa32a06440f6f.jpeg

抽奖送出6本不错的Python书籍。需要的同学

直接下面的公众号后台输入:1213


 
推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看B站50个Python实战视频!

毕业设计:基于Codon、Python和C++的开源量化交易系统.zip 计算机毕设源码 立即下载

相关推荐

单片机开发者的福音:3步搞定VSCode智能补全(IAR工程+Clangd实战)

本文为单片机开发者提供了一套高效解决方案,通过EIDE插件将IAR工程导入VSCode,并生成关键的compile_commands.json文件,结合Clangd配置,仅需三步即可实现精准的智能代码补全、一键跳转等现代编辑功能,大幅提升嵌入式开发效率。

coffee的博客 525

PyPy 通过采用即时编译技术,能够显著提升 Python 代码的执行效率。

PyPy 通过采用即时编译技术,能够显著提升 Python 代码的执行效率。

叶庭云 成为自己的光 1327

反应堆设计:基于MATLAB的反应堆仿真和分析,包括反应堆稳态分析、反应堆动态分析和反应堆安全分析 介绍

反应堆设计是利用计算机技术对核反应堆进行设计和模拟,以获得安全、高效、经济的核能发电系统。它是核能领域的重要组成部分,在电力生产、核医学、科学研究等领域有着广泛的应用。

走向CTO的路上... 1113

使用codon加速你的python程序

使用codon加速你的python程序

weixin_45921929的博客 3358

【100%通过率】华为OD机试真题 Python 实现【打印机队列】【2022.11 Q4 新题】

有5台打印机打印文件,每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中数字越大优先级越高。打印机会从自己的待打印队列中选择优先级最高的文件来打印。如果存在两个优先级一样的文件,则选择最早进入队列的那个文件。现在请你来模拟这5台打印机的打印过程。

MISAYAONE的博客 1万+

Python 爬虫实战:爬取豆瓣电影 Top250 完整数据

本文基于Python技术实现了豆瓣电影Top250榜单数据的合规爬取与分析。针对豆瓣电影页面的分页结构、反爬机制等特点,采用requests库获取数据,结合BeautifulSoup解析HTML节点,并通过正则表达式提取电影名称、评分、导演等核心字段。爬虫实现了随机User-Agent、请求间隔控制等反爬规避策略,严格遵守豆瓣社区使用规范。最终数据经清洗后存储为结构化Excel文件,并提供了数据可视化与增量更新方案。该方案为影视研究提供了可靠的数据获取方法,同时确保符合非商业使用、适度爬取等合规要求。

2503_91057718的博客 3460

速度百倍提升,高性能 Python 编译器 Codon 火了

而Codon摒弃了这一机制,支持真正的多线程执行,这使得在多核处理器上运行的Codon能够实现远超单线程的性能提升。通过其无运行时开销的本地机器码编译能力以及原生的多线程支持,Codon不仅能显著提升Python程序的执行速度,更为Python的应用场景开拓了新的边界。对于开发者而言,Codon不仅仅提供了一个更快的Python实现,更开启了新的编程和应用可能。Codon是一个高性能的Python实现,能够编译成本地机器码,无需任何运行时开销,性能通常可以达到传统Python的10-100倍,甚至更高。

weixin_53707653的博客 1125

DeepLabv3+改进专栏

🔥【DeepLabv3+改进专栏!探索语义分割新高度】🌟 你是否在为图像分割的精度与效率发愁?📢 本专栏重磅推出:✅ 独家改进策略:融合注意力机制、轻量化设计与多尺度优化✅ 即插即用模块:ASPP+升级、解码器。

AIcurator的博客 2576

终极指南:Codon并行编程如何突破Python GIL限制实现多线程与GPU加速

Codon作为一款高性能Python编译器,通过LLVM实现零开销编译,彻底突破了传统Python的GIL限制,为开发者提供了强大的多线程和GPU加速能力。本文将详细介绍如何利用Codon的并行编程特性,轻松实现程序性能的大幅提升。 ## 为什么选择Codon进行并行编程? Python因其简洁易用的语法成为数据科学和机器学习领域的首选语言,但全局解释器锁(GIL)的存在严重限制了多线程性能。

gitblog_01011的博客 465

R 语言 ggplot2 绘制精美高级全球地图

在本教程中,我们将学习如何使用R语言和ggplot2包绘制精美高级地图。ggplot2是一个功能强大的数据可视化包,它可以让我们创建漂亮、交互式的地图。我们将使用R中的一些其他包来处理地理空间数据,以便与ggplot2无缝协作。

Mrrunsen的博客 1867

RV1126 ROS2环境交叉编译及部署(基于官方Docker)

我的所有基于`RV1126`的机器人项目都是在`Ubuntu22.04`下进行开发的,在`Ubuntu18.04 Docker`容器中实现`RV1126`的`SDK`编译,详细可参考我之前的博客[《Ubuntu20.04/22.04下Docker方案实现多平台SDK编译》第2章](https://blog.youkuaiyun.com/w1820020635/article/details/147342689),`RV1126`的`ROS1`部署没什么难度,可以参考我之前的博客,这里记录了`ROS2`交叉编译及问题解决

w1820020635的博客 1143

速度百倍提升,高性能 Python 编译器 Codon 火了!

这是「进击的Coder」的第 882篇技术分享来源:机器之心“ 阅读本文大概需要 6 分钟。 ”众所周知,Python 是一门简单易学、具有强大功能的编程语言,在各种用户使用统计榜单中总是名列前茅。相应地,围绕 Python,研究者开发了各种便捷工具,以更好的服务于这门语言。编译器充当着高级语言与机器之间的翻译官,不同版本的 Python 编译器已被开发出来,下面我们将为大家介绍一款新的高性能 ...

静觅 798

ican项目四汽车零件智能测量

ican项目四汽车零件智能测量

weixin_72050316的博客 562

利用codon神器10倍提升我的python代码效率

可以看到运行时间为13.530s,相较原生python脚本运行时间2m37.856s,效率提高了10倍以上。我用的centos7.9,如果报gcc编译器版本低,某些参数不支持,可通过执行。第一步:利用codon编译器将我的python脚本编译为可执行文件。通过以上操作即可切换GCC至9.3.1版本。第二步:直接执行该命令。

qq_36608036的博客 1525

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

提升 Python 执行速度:Codon、C/C++、Rust、Numba(JIT)、Taichi、Nuitka、MatxScript

提升 Python 执行速度:Codon、C/C++、Rust、Numba(JIT)、Taichi、Nuitka、MatxScript

freeking101的博客 4746

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Codon: 高性能Python编译器实战指南

Codon 是一个基于LLVM的高性能、零开销扩展型Python编译器,旨在为Python程序员提供接近C/C++的运行速度,而不牺牲语言的易用性。它通过静态编译实现,消除了解释执行的性能瓶颈,支持原生多线程(无全局解释器锁GIL),并且对GPU编程提供了支持。相较于标准的CPython,Codon可以在单线程环境下达到10到100倍以上的速度提升,而且能够与现有Python生态系统无缝交互。 ...

gitblog_00642的博客 1180

狂揽两千星,速度百倍提升,高性能Python编译器Codon开源

例如,一些 Python 的模块还没有在 Codon 中实现,一些 Python 的动态特性是不允许的。Codon 尽可能地遵循 CPython 语法、语义和 API,但在一些特殊情况下,考虑性能原因,Codon 与 CPython 会有些不同,例如 Codon 为 64 位 int,CPython 是任意宽度 int。原因有很多,例如更好的容器实现,Codon 不使用目标文件和内联所有库代码,或者不使用 C 执行的特定于 Codon 的编译器优化或 C++。对于非生产用途,Codon 始终是免费的。

机器学习社区 945

让 Python 拥有 C/C+一样的速度,编译神器 Codon 发布!

Codon 不需要使用像 numpy 这样的 C 语言实现的库来重写程序,也不需要完全用 C 语言重写,而是可以使用相同的 Python 实现,并给出你用 C 语言重写的相同性能”,麻省理工学院教授和 CSAIL 首席研究员 Saman Amarasinghe说 道,“因此,我相信 Codon 是成功的 Python 应用程序的最简单的前进道路,这些应用程序由于缺乏性能而达到了一个极限。因此,Codon 可以实现更好的性能,并克服运行时的特定问题,如全局解释器锁”。Python 的运行速度快吗?

Python84310366的博客 454

Python使用pip安装Codon(及codon-jit)报错(未解决)

python使用pip安装Codon的一系列报错和可参考原因

BCHBL的博客 680

体会codon执行python脚本的提速感

验证codon对于python脚本执行的提速感

ljyfree的专栏 1121

Ubuntu 22安装使用Codon高性能Python编译器记录

其中user替换为自己的目录。按Ctrl+H后可以在根目录下直接看到.codon文件夹,查看文件夹属性也可以。这里每个电脑的配置不一样,总之就是找到libpython x.x.so文件,再打开.bashrc,添加。Codon 在官方 Ubuntu 存储库中没有直接的教程,但可以尝试如下方法进行安装。本次代码为使用pandas库,对表格文件进行数据分析。原始代码用时为6.88s。输出问题应该是引用三方库时,出现部分引用问题。test.py为我自己的Python代码。差不多3倍左右的加速效果。

小俊俊的博客 1807
上一篇: 15个好用到起飞的爬虫技巧!
下一篇: 良心总结!Git 各指令的本质,真是通俗易懂啊
菜鸟学Python
博客等级 码龄9年 8083粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值