位置: 编程技术 - 正文

利用ctypes提高Python的执行速度

编辑:rootadmin

推荐整理分享利用ctypes提高Python的执行速度,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

ctypes是Python的外部函数库。它提供了C兼容的数据类型,并且允许调用动态链接库/共享库中的函数。它可以将这些库包装起来给Python使用。这个引入C语言的接口可以帮助我们做很多事情,比如需要调用C代码的来提高性能的一些小型问题。通过它你可以接入Windows系统上的 kernel.dll 和 msvcrt.dll 动态链接库,以及Linux系统上的 libc.so.6 库。当然你也可以使用自己的编译好的共享库

我们先来看一个简单的例子 我们使用 Python 求 以内素数,重复这个过程次,并计算运行时间。

输出

下面用C语言写一个的 check_prime 函数,然后把它当作共享库(动态链接库)导入

使用以下命令生成 .so (shared object)文件

输出

我们可以看到很明显的性能差距 这里有更多的方法去判断一个数是否是素数

利用ctypes提高Python的执行速度

再来看一个复杂点的例子 快速排序

mylib.c

使用ctypes有一个麻烦点的地方是原生的C代码使用的类型可能跟Python不能明确的对应上来。比如这里什么是Python中的数组?列表?还是 array 模块中的一个数组。所以我们需要进行转换

test.py

输出

与Python list 的 sort 方法进行对比

输出

至于结构体,需要定义一个类,包含相应的字段和类型

除了导入我们自己写的C语言扩展文件,我们还可以直接导入系统提供的库文件,比如linux下c标准库的实现 glibc

输出

总结

标签: 利用ctypes提高Python的执行速度

本文链接地址:https://www.jiuchutong.com/biancheng/385406.html 转载请保留说明!

上一篇:python实现批量监控网站(python批量ping)

下一篇:Python随机数random模块使用指南(python随机数random.choice)

  • 无住所居民个人所得税的计算
  • 公司申报个税流程
  • 如何解除委托合同范文
  • 土地增值所得需交什么税
  • 个体户个人经营所得税税率表2023
  • 个税申报导入上月数据
  • 开发票高校是企业还是非企业单位
  • 法人可不可以办信用卡
  • 什么叫销售劳务
  • 代扣代缴个税返点怎么申请
  • 经营租赁是主营业务收入吗
  • 财政拨款的事业单位有哪些
  • 实收资本没到账,一直挂其他应收款,有啥影响
  • 应付票据与应付账款
  • 企业所得税税前扣除政策
  • 失控发票如何认定
  • 航天发票上传不成功怎么手动上传
  • 增值税进项税抵扣规定
  • 一般纳税人的资质在哪里打印
  • 进项税期末有余额吗
  • uv价值是怎么计算公式
  • 代开专票交的城建税怎么申报附加税
  • 车子计提折旧年限
  • 未成立工会组织情况说明
  • windows10软件图标不正常显示
  • 冲销去年凭证会计分录
  • 利得的具体分类
  • 通过二手车买进套现
  • 发票怎么保管不会坏
  • 鲜艳的多彩的英文
  • 格林湖人
  • 设计协会是干什么的
  • java pdf生成工具
  • zentaophp框架
  • linuxulator
  • 如何做架构规划图
  • html前端技术
  • vue之间的组件通信
  • smb命令执行
  • vi命令模式下的常用命令有哪些?
  • php for break
  • 建筑业发票范围
  • 累计折旧累计摊销属于现金流吗
  • 短期投资的入账成本
  • 用友固定资产模块反结账
  • 公司购买的商品是白酒用于招待现金流项目是哪类
  • 运输发票抵扣税率是多少
  • 盈利性学校收到财政补贴要缴企业所得税吗
  • 固定资产报废如何交增值税
  • 工会经费与教育经费比例
  • 差旅费不抵扣
  • 债券投资属于什么
  • 营改增后所得税怎么计算
  • 员工预支钱要写什么单据
  • 应交增值税结转凭证
  • 财务费用为零的原因
  • 一达通退税需要具备的条件?
  • 公交车ic卡网上充值
  • 被投资企业注销,确认投资损失需
  • 房产开发企业以什么为主
  • mysql分区实现
  • win8.1资源管理器频繁假死
  • wind10手机
  • windows2008版本区别
  • FreeBSD中使用QUOTA(磁盘配额)来限制用户空间
  • window10声音自动减小
  • ubuntu如何读
  • linux命令行怎么查看公网ip
  • linux之间拷贝文件
  • windows server 2012 r2关机在哪
  • 红帽企业版更新了吗
  • win7命令提示符在哪
  • shell监控脚本例子大全
  • pcs可以使用什么在任何地方以各种速率与网络保持联络
  • JavaScript中常用的数据类型有
  • android面试题2019
  • 全国哪些地区社保比例高
  • 软件即征即退软件是什么
  • 设计服务税收分类编码
  • 数码产品关税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设