当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

Codon

高性能 Python 编译器
授权协议 BSL
开发语言 C/C++ Python
所属分类 开发工具、 编译器
软件类型 开源软件
地区 不详
投 递 者 陆绍辉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Codon 是一款高性能 Python 编译器,可将 Python 代码编译为本机机器代码,而无需任何运行时开销。

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

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

安装

每个版本都提供了适用于 Linux (x86_64) 和 macOS(x86_64 和 arm64)的预构建二进制文件。下载并安装:

/bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)"

例子

Codon 是一种与 Python 兼容的语言,许多 Python 程序只要稍作修改就可以工作:

def fib(n):
    a, b = 0, 1
    while a < n:
        print(a, end=' ')
        a, b = b, a+b
    print()
fib(1000)

编译器codon有许多选项和模式:

# compile and run the program
codon run fib.py
# 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

compile and run the program with optimizations enabled

codon run -release fib.py

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

compile to executable with optimizations enabled

codon build -release -exe fib.py ./fib

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

compile to LLVM IR file with optimizations enabled

codon build -release -llvm fib.py

outputs file fib.ll

有关更多选项和示例,请参阅文档

注意事项

虽然 Codon 几乎支持 Python 的所有语法,但它并不是一个简单的替代品,大型代码库可能需要修改才能通过 Codon 编译器运行。例如,一些 Python 的模块还没有在 Codon 中实现,一些 Python 的动态特性是不允许的。

Codon 编译器会生成详细的错误消息,以帮助识别和解决任何的不兼容问题。Codon 支持无缝的 Python 互操作性,以处理需要特定 Python 库或动态性的情况。

  • python虽然容易上手,但是执行效率一直为人诟病。提升执行效率的方案越来越多,今天试试codon 首先按照工程的介绍执行安装codon $ /bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)" 以工程中的例子,加上运行时间的打印 $ cat prime.py from sys import argv import time d

 相关资料
  • 高级编译 常规构建过程使用Google的在线JavaScript编译器将Blockly减少到六个文件,总计约720kb(压缩后的160kb)。 另外,也可以在“高级编译”模式下使用Google的离线JavaScript编译器,它具有许多优点: 由于文件结构改变,总块大小减少到300kb(压缩了100kb) 由于本地编译器的执行,构建时间更快且没有网络流量 无限编译(在线编译器受速率限制) 设置 出

  • 问题内容: Python中最快的FFT实现是什么? 似乎numpy.fft和scipy.fftpack都基于fftpack,而不是FFTW。fftpack和FFTW一样快吗?使用多线程FFT或使用分布式(MPI)FFT怎么办? 问题答案: 当然,您可以使用Cython或其他具有类似想法的工具(可以访问外部库)包装要测试的任何FFT实现。 基于GPU 如果要测试FFT实现,则还可以查看基于GPU的代

  • 我们在当前项目中使用GWT 2.4版。在服务器端,我们使用Spring 我们使用Maven作为构建工具。该应用程序正在JBOSS 7服务器上部署。 目前,我们在一个Eclipse项目中拥有所有内容。指一个应用程序。gwt。xml文件和一个ApplicationContext。spring的xml。我们有大约2000个Java文件,其中大约1500个用于GWT相关的源文件。 该项目仍在增长,源文件越

  • 本文向大家介绍编写高性能Lua代码的方法,包括了编写高性能Lua代码的方法的使用技巧和注意事项,需要的朋友参考一下 前言 Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏。像《魔兽世界》的插件,手机游戏《大掌门》《神曲》《迷失之地》等都是用Lua来写的逻辑。 所以大部分时候我们不需要去考虑性能问题。Knuth有句名言:“过早优化是万恶之源”。其意思就是过早优化是不必要的,会浪费

  • 本章将介绍Rust编译器的参数。 Rust编译器程序的名字是rustc,使用它的方法很简单: $ rustc [OPTIONS] INPUT 其中,[OPTIONS]表示编译参数,而INPUT则表示输入文件。而编译参数有以下可选: -h, --help - 输出帮助信息到标准输出; --cfg SPEC - 传入自定义的条件编译参数,使用方法如 fn main() { if cfg!(he

  • 我正在用docx4j做一些测试。我需要做的是将复杂的Word文档(2-3页的文本、表格、项目符号列表、图像)转换成XHTML。