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

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

Python 的运行速度快吗?虽说不同场景不同定论,但整体而言,它没有 C、Java 快。这也导致 Python 凭借可读性、简单易上手、良好的生态系统横行 AI 领域时,一提到速度,就成为众多开发者头疼的问题。

为了解决这一难题,麻省理工学院的计算机科学家出手了,他们共同研发了一种名为 Codon 的 Python 编译器,可以将 Python 代码转化为本地机器代码,而不会对运行时的性能产生影响。

当前,Codon 已经在 GitHub 上开源:https://github.com/exaloop/codon,斩获 6300 个 Star。

Codon 与 C/C++ 性能相当

"在单线程上,比 Python 的典型速度提高了 10-100 倍或更多,"Codon repo写道,“Codon 的性能通常与 C/C++ 的性能相当(有时甚至更好)。”

与 Python 不同的是,Codon 支持本地多线程,这可以使速度提高许多倍。

Codon 最初是作为一个在 Python 中创建高性能特定领域语言(DSL,domain-specific language)的框架而开发的。DSL 是专注于特定目的的语言,而不是像 Python 或 C 这样的通用编程语言。

据官方 GitHub repo 透露,Codon 源于 Seq 项目,后者是一个用于生物信息学和遗传学的 DSL,现如今它已经成长为一个与 Python 3 基本兼容的语言编译器。

近期,外媒 The Register 通过该工具的研究团队内部最新分享了一个关于 Codon 的论文。本论文的作者包含了,MIT、维多利亚大学等多名研究人员,如 Ariya Shajii(Exaloop)、Gabriel Ramirez(MIT CSAIL)、Haris Smajlović(加拿大维多利亚大学)、Jessica Ray(MIT CSAIL)、Bonnie Berger(MIT CSAIL)、Saman Amarasinghe(MIT CSAIL)和 Ibrahim Numanagić(维多利亚大学)。

这篇论文指出,“与其他面向性能的 Python 实现(如 PyPy 或 Numba)不同,Codon 是作为一个独立的系统从头开始构建的,它可以提前编译为静态可执行文件,并且不与现有的 Python 运行时(如 CPython 或 RPython)绑定执行。因此,Codon 可以实现更好的性能,并克服运行时的特定问题,如全局解释器锁”。

在论文中,作者也讨论了各种基于 Codon 的高性能 DSL,这些 DSL 设计用于生物信息学、数据压缩和并行编程,也利用了 Codon 的编译器基础设施。但是 Codon 可以大幅加速标准的 Python 程序,尽管那些依赖外部库(如 Django 或 DocUtils)的程序必须依赖 CPython 桥接,这就限制了 CPython 的性能。

“Codon 不需要使用像 numpy 这样的 C 语言实现的库来重写程序,也不需要完全用 C 语言重写,而是可以使用相同的 Python 实现,并给出你用 C 语言重写的相同性能”,麻省理工学院教授和 CSAIL 首席研究员 Saman Amarasinghe说 道,“因此,我相信 Codon 是成功的 Python 应用程序的最简单的前进道路,这些应用程序由于缺乏性能而达到了一个极限。”

测试

那么 Codon 是否真的如说的那样快?在 Codon 论坛上,一位开发者进行了测试:

CPython 3.11

PyPy 7.3.9

Codon compiled

Codon with python interpreter

最终发现,一个简单的 Codon 编译的斐波那契脚本比 CPython 版本快 70 多倍。

除此之外,该研究团队也在 GitHub 上贴出了 Codon 基准测试套件的结果,比较了 Python、PyPy、C++ 和 Codon 在一系列任务和应用上的表现。该基准测试是在以下设置上运行的:

最终结果如下所示:

据 Codon 官方文档显示,虽然 Codon 的语法和语义与 Python 的几乎相同,但还是有一些值得一提的区别,如数据类型方面:

整数。Codon 的 int 是一个 64 位有符号的整数,而 Python 的(在版本 3 之后)可以是任意大的。然而 Codon 通过 Int[N] 支持更大的整数,其中 N 是位宽。

字符串。Codon 目前使用 ASCII 字符串,与 Python 的 unicode 字符串不同。

字典。Codon 的字典类型不保留插入顺序,与 Python 3.6 的不同。

此外,Codon 和 Python 在类型检查、数值运算、模块等维度还有些许的不同,更详细的内容可参考:https://docs.exaloop.io/codon/general/differences据悉,Codon 已经被商业化地应用在金融和生物信息学、深度学习等领域。

读者福利:优快云大礼包:《Python小白从入门到精通全套学习资料》免费分享 安全链接免费领取

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

相关推荐

(详细教程)opencv+pycharm+笔记本摄像头 做一个人脸识别

文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 一、安装opencv-python 这里推荐使用pycharm直接安装opencv-python 打开文件——设置——python解释器——点击+号 搜索opencv-python,点击安装包,等待片刻即可安装好 检查是否安装好,新建一个项目输入以下代码,若无报错则安装好 import cv2 二、准备分类器 咱们使用opencv官方提供的分类器,包括面部识别,侧...

qq_52852432的博客 1万+

使用codon加速你的python程序

使用codon加速你的python程序

weixin_45921929的博客 3358

gem5 run parsec2.1 ---- 亲测跑通教程

使用gem5模拟仿真parsec2.1,排除了各种bug,成功跑通,亲测有效!!!

m0_55539563的博客 1546

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

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

weixin_53707653的博客 1125

Flutter版本升级踩坑实录:从3.27到3.35,我们是如何修复Impeller引擎导致的花屏问题的?

本文详细记录了团队在Flutter版本升级过程中遇到的Impeller引擎导致的花屏问题及解决方案。从问题诊断到最终升级至稳定版3.35,文章分享了排查步骤、升级策略和性能对比数据,为开发者提供了实用的参考经验。

weixin_26854555的博客 504

基于云盾构建等保三级Web安全体系:从合规要求到实战落地

网络安全等级保护(等保)是保障信息系统安全的重要制度,其核心原理是通过分级防护、动态调整的策略,构建纵深防御体系。在技术层面,等保要求覆盖物理环境、通信网络、区域边界、计算环境和安全管理中心等多个层面,旨在通过技术和管理相结合的方式,有效应对网络攻击和数据泄露风险。对于Web应用而言,满足等保三级要求具有极高的技术价值,它不仅是合规的刚性需求,更是提升业务系统整体安全水位、建立用户信任、保障业务连续性的关键工程实践。在云计算时代,利用云原生安全服务(如Web应用防火墙WAF、云安全中心、态势感知等)可以高效

weixin_29324877的博客 307

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

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

qq_36608036的博客 1525

MCGS触摸屏Modbus TCP通讯实战:从寄存器写入到字符串处理的完整代码解析

本文详细解析了MCGS触摸屏通过Modbus TCP协议实现寄存器写入和字符串处理的完整代码,涵盖单寄存器写入、多寄存器写入及字符串传输等核心技术。文章还提供了MCGS组态环境中的实战配置步骤和常见问题排查方法,帮助开发者快速掌握工业自动化通讯的关键技术。

study的专栏 755

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

"Codon 不需要使用像 numpy 这样的 C 语言实现的库来重写程序,也不需要完全用 C 语言重写,而是可以使用相同的 Python 实现,并给出你用 C 语言重写的相同性能",麻省理工学院教授和 CSAIL 首席研究员 Saman Amarasinghe说 道,"因此,我相信 Codon 是成功的 Python 应用程序的最简单的前进道路,这些应用程序由于缺乏性能而达到了一个极限。Codon 的 int 是一个 64 位有符号的整数,而 Python 的(在版本 3 之后)可以是任意大的。

IT界那些事儿 4393

CVAT自动标注避坑指南:从nuctl安装到YOLOv5模型部署的完整流程

本文详细介绍了在CVAT中部署YOLOv5自动标注功能的完整流程与避坑指南。重点解决了从nuctl工具安装、项目创建时因网络问题导致的镜像拉取失败,到最终模型函数部署与CVAT集成的关键步骤。针对国内网络环境,提供了实用的镜像替换方案,帮助用户顺利完成基于CPU的自动化标注环境搭建。

pytorch8learner的博客 229

国家基本比例尺分幅土地利用现状图制作

本次主要解决的问题是如何构建脚本快速生成所涉及区域标准国家基本比例尺分幅,然后制作土地利用现状图模板,套用模板生成标准分幅土地利用现状图。

xyt1172228177的博客 2458

“ChatGPT” 什么时候能取代程序员?【优快云 AI 编程榜】揭晓答案

优快云 AI 编程榜选择了六款 AI Coding 产品进行测评, ChatGPT、GPT 3.5 、CodeBBT、GitHub Copilot、CodeGeex、aiXcoder。最终,ChatGPT 以几乎接近满分的成绩摘得榜首,成为开发者辅助编码的最佳神器。各大模型对 C++ 和 Java 语言支持要优于其他几种语言,aiXcoder 排名最末位,其他几个产品水平相差无几。☞苹果 11 ...

程序人生的博客 351

基于STM32的智慧农业大棚监测与控制系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧农业大棚监测与控制系统,集成多参数环境监测、智能控制和远程管理功能。系统可实时采集光照、CO2、温湿度和土壤湿度等参数,通过OLED显示并采用双模式控制机制:自动模式下根据阈值调节设备,手动模式下支持APP或按键控制。通过ESP8266模块接入机智云平台实现数据云存储和远程控制。测试表明系统具有高精度(温度±0.5℃、CO2±50ppm)、快速响应(<2s)和稳定运行(30天无故障)等特点,有效解决了传统大棚调控不及时等问题。创新点包括多参

3254968421的博客 485

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

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

静觅 798

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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

freeking101的博客 4742

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

gitblog_00642的博客 1180

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

小俊俊的博客 1807

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

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

ljyfree的专栏 1121

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

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

机器学习社区 944

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

请注意,Codon是一个实验性的项目,并不是官方的Python发行版。因此,在使用Codon时可能会遇到一些兼容性和稳定性问题。建议在非生产环境中进行尝试和测试。希望这些信息对你有帮助!Codon是一个高性能的Python编译器,可在Ubuntu上进行安装和使用。替换为你要编译的Python模块的名称。

高性价比服务器就选:蓝易云 596

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

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

BCHBL的博客 680
上一篇: 来不及细说,毕业三天靠Python兼职赚了两千
下一篇: 解决就业的金字招牌-Python
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值