Python速度编译神器学生来看
Python速度编译神器快来体验吧
Python速度编译神器
Python的运行速度快吗?虽说不同场景不同定论, 但整体而言
, 它没有C、Java快。这也导致Python凭借可读性、简单易
上手、良好的生态系统横行AI领域时,一提到速度,就成为众
多开发者头疼的问题。
为了解决这一难题,麻省理工学院的计算机科学家出手了,他
们共同研发了一种名为Codon的Python编译器, 可以将
Python代码转化为本地机器代码, 而不会对运行时的性能产生
影响。
当前, Codon已经在Git Hub上开源:https:
//github.com/exaloop/codon, 斩获6300个Star。
1、Codon与C/C++性能相当
"在单线程上, 比Python的典型速度提高了10-100倍或更多,
"Codon repo写道, "Codon的性能通常与C/C++的性能相当
(有时甚至更好)。"
codon
与Python不同的是, Codon支持本地多线程, 这可以使速度
提高许多倍。
Codon最初是作为一个在Python中创建高性能特定领域语言
(DSL, domain-specific language) 的框架而开发的。DSL
是专注于特定目的的语言, 而不是像Python或C这样的通用
编程语言。
据官方Git Hub repo透露, Codon源于Seq项目, 后者是一个
用于生物信息学和遗传学的DSL, 现如今它已经成长为一个与
Python 3基本兼容的语言编译器。
近期, 外媒The Register通过该工具的研究团队内部最新分享
了一个关于Codon的论文。
这篇论文指出, "与其他面向性能的Python实现(如PyPy或
Numba) 不同, Codon是作为一个独立的系统从头开始构建的
, 它可以提前编译为静态可执行文件, 并且不与现有的Python
运行时(如CPython或RPython) 绑定执行。因此, Codon
可以实现更好的性能,并克服运行时的特定问题,如全局解释
器锁"。
2、测试
那么Codon是否真的如说的那样快?在Codon论坛上, 一位
开发者进行了测试:
CPython 3.11
PyPy 7.3.9
Codon compiled
Codon with python interpreter
最终发现, 一个简单的Codon编译的斐波那契脚本比CPython
版本快70多倍。
据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
已经被商业化地应用在金融和生物信息学、深度学习等领域。