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

news2024/11/24 6:09:27

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

Codon 在官方 Ubuntu 存储库中没有直接的教程,但可以尝试如下方法进行安装。

一、更新系统

终端输入:

sudo apt update

以及

sudo apt upgrade

二、安装curl

输入指令:

sudo apt install curl

三、安装codon

输入指令:

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

在这里插入图片描述

四、配置

打开.bashrc文件,查看bashrc文件可以使用Ctrl+H按键,在根目录下查看bashrc文件,并在bashrc文件中添加:

export PATH=/home/user/.codon/bin:$PATH

其中user替换为自己的目录。按Ctrl+H后可以在根目录下直接看到.codon文件夹,查看文件夹属性也可以。
在这里插入图片描述
我的替换为:

export PATH=/home/cj/.codon/bin:$PATH

终端输入:

source .bashrc

五、验证

输入指令:

codon --version

输出版本信息
在这里插入图片描述
完成安装。

六、配置环境变量及代码运行

1.在系统路径下搜索libpython文件
在这里插入图片描述

找到的so文件如下
在这里插入图片描述
这里每个电脑的配置不一样,总之就是找到libpython x.x.so文件,再打开.bashrc,添加

export CODON_PYTHON=/path/to/libpython.X.Y.so

我的添加文件如下:
在这里插入图片描述
加入后输入:

source .bashrc

2.运行代码
尝试运行代码,在代码文件夹下打开终端输入:

codon run -release test.py

test.py为我自己的Python代码。会出现报错

test.py:2:8-14: error: no module named 'pandas'
time.codon:44:43-49: error: name 'stderr' is not defined
time.codon:225:8-12: error: name 'fabs' is not defined
test.py:9:8-19: error: no module named 'time'

解决方法:
输出问题应该是引用三方库时,出现部分引用问题。原始的python代码头部为:

import os
import pandas as pd
import time

修改为:

import os
from python import pandas as pd
from python import time

运行方式可以选择上面的指令:

codon run -release test.py

也可以使用指令生成二进制文件:

codon build -release -exe test.py

然后在终端输入:

./test

3.结果对比
本次代码为使用pandas库,对表格文件进行数据分析。原始代码用时为6.88s。
在这里插入图片描述
codon加速后用时2.36s。
在这里插入图片描述
差不多3倍左右的加速效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/744948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DHCP静态分配IP地址、IP-MAC绑定、静态ARP有哪些区别?

DHCP静态分配IP地址、IP-MAC绑定、静态ARP这三个功能都涉及到IP地址和MAC地址的对应关系,但其应用场景及实现的功能有所不同,如表所示: 原文地址https://support.huawei.com/enterprise/zh/knowledge/EKB1000052241

Linux下如何部署Nuxt项目(通过ip直接访问)

一、基础环境准备 1.确定服务器的Linux的系统版本 cat /etc/issue 不要问为什么,问就是吃过大亏 2.确定 node mysql是否安装,版本尽量与本地开发环境一致 如果没有安装建议自己百度一下,要根据Linux系统及版本来进行安装; 二、…

企业信息化-亿发软件,中小企业数字化转型解决方案供应商

因自身规模和企业性质,中小型企业需要有效管理企业资源,因此企业信息化管理至关重要。在此背景下,为中小企业量身定制的信息化管理系统可以为中小型企业带来显著的效益。能够实现数据的迅速整合,便于跨部门的协调和管理&#xff0…

计算机网络|思维导图|自顶向下方法|MindMaps资料分享

前言 那么这里博主先安利一下一些干货满满的专栏啦! 手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支…

【JMeter】同步定时器Synchronizing Timer集合点功能

LoadRunner 中有一个可以设置集合点的功能,顾名思义是设置多个虚拟用户等待到一个时间点,都到齐集合后一起发请求达到并发的目的 集合点是什么意思呢? 阻塞线程,直到指定的线程数量到达后,再一起释放,可以…

【Leetcode】206. 反转链表

题意:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 一开始需要 cur head pre None 第二步反转指针 cur.next pre 接着再继续移动指针 tmp cur.next // 放在反转之前 pre cur cur tmp 完整…

Java使用JNA调用C文件

1.构建项目 准备最简单的maven项目&#xff0c;结构如下&#xff1a; 引入依赖&#xff1a; <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.3.1</version></dependency>2.构建c…

2023-7-12-第十七式状态模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

IMPALA 查询优化之元数据

目录 说明 背景 问题复现 环境 sql 排查 分析过程 结果分析 总结 说明 sql优化中重要的一环是查询改写&#xff0c;一个表的元数据有利于sql优化器准确的评估sql代价&#xff0c;获取最佳的sql执行计划&#xff0c;如下图所示&#xff0c;本文验证通过加载刷新impala …

Maya文件加载缓慢,这样处理就可以

将场景加载到Maya中时&#xff0c;需要较长时间才能打开场景。 有时&#xff0c;CPU使用率可能会达到100%。 原因&#xff1a; 在文件上工作一段时间后&#xff0c;场景通常会与未使用的显示层、集和节点混淆。这些未使用的图元可能会导致打开文件时出现滞后。 解决方案&…

CMU 15-445 -- Query Processing - 07

CMU 15-445 -- Query Processing - 07 引言Query ProcessingProcessing ModelIterator ModelMaterialization ModelVectorization Model小结 Access MethodsSequential ScanZone MapsLate MaterializationHeap Clustering Index ScanMulti-index ScanIndex Scan Page Sorting E…

文件操作--按格式读写文件

C语言允许按指定格式读写文件。函数fscanf&#xff08;&#xff09;用于按指定格式从文件读数据。其函数原型为&#xff1a; int fscanf (FILE *fp, const char *format ,...)&#xff1b; 其中&#xff0c;第一个参数为文件指针&#xff0c;第2个参数为格式控制参数&#x…

2023届网络安全岗秋招面试题及面试经验分享

Hello&#xff0c;各位小伙伴&#xff0c;我作为一名网络安全工程师曾经在秋招中斩获&#x1f51f;个offer&#x1f33c;&#xff0c;并在国内知名互联网公司任职过的职场老油条&#xff0c;希望可以将我的面试的网络安全大厂面试题和好运分享给大家~ 转眼2023年秋招已经到了金…

Linux ❀ Openssh 8.9p1源码升级教程

文章目录 升级操作注意事项&#xff1a;1. 安装依赖2. 执行升级2.1 上传压缩包并保存配置2.2 开始升级 升级操作注意事项&#xff1a; 编译过程需要依赖&#xff0c;必须安装完成!!!SSH服务升级过程可能会导致无法远程连接服务器!!!若必须远程登录必须确认telnet服务可用!!!升…

3D格式转换工具HOOPS Exchange功能大盘点:快速、准确的CAD数据转换SDK!

HOOPS Exchange SDK是一套C软件库&#xff0c;使开发团队能够快速将可靠的二维和三维CAD导入和导出到他们的应用程序中&#xff0c;访问广泛的数据&#xff0c;包括边界表示&#xff08;B-REP&#xff09;、产品制造信息&#xff08;PMI&#xff09;、模型树、视图、持久性ID、…

C语言—模拟实现memcpy,memmove

1.memcpy函数的介绍与实现 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数在遇到 \0 的时候并不会停下来。 如果source和destination有任何的重叠&#xff0c;复制的结果都是未定义的。 void * memcpy ( void * destination, const v…

MySQL原理探索——30 答疑文章(二):用动态的观点看加锁

在第20和21篇文章中&#xff0c;介绍了 InnoDB 的间隙锁、next-key lock&#xff0c;以及加锁规则。 今天这篇答疑文章的主题&#xff0c;即&#xff1a;用动态的观点看加锁。 为了方便理解&#xff0c;我们再一起复习一下加锁规则。这个规则中&#xff0c;包含了两个“原则”、…

电子地图对客户端电脑配置要求

二三维地图是基于canvas和webgl在前端进行的实时渲染&#xff0c;所以首先保证您的客户端是一个具有独立显卡的PC机&#xff0c;而不是虚拟机或低配机器。 其次&#xff0c;性能问题与显示器分辨率以及显卡能力息息相关&#xff0c;通常来说屏幕分辨率越高&#xff0c;越消耗性…

做跨境电商必懂的五大流量运营逻辑,带你玩转流量市场!

一、你上一家是做什么类目的&#xff0c;你们前名是谁&#xff0c;分别是什么样的流量来源? 商家排名一般有四个维度&#xff0c;弟一个维度是消量弟一&#xff0c;弟二个维度是销售额弟一&#xff0c;第三个维度是流量弟一&#xff0c;第四个维度利润弟一。 只要我们找出来自…

【IMX6ULL驱动开发学习】18.中断下半部(tasklet、工作队列、中断线程化)

下图表述了Linux内核的中断处理机制&#xff0c;为了在中断执行时间尽量短和中断处理需完成的工作尽量大之间找到一 个平衡点&#xff0c; Linux将中断处理程序分解为两个半部&#xff1a; 顶半部&#xff08;Top Half&#xff09; 和底半部&#xff08;Bottom Half&#xff09…