位置: 编程技术 - 正文

利用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)

  • 领的增值税专用发票如何录入电脑
  • 不得公开发行股票的情形
  • 缴纳印花税的会计凭证
  • 待报解预算收入计入什么科目
  • 纳税申报表上的二维码有什么用?
  • 进口货物销售不开票
  • 营业费用和管理费用比较
  • 小规模纳税人不开票需要纳税吗
  • 货没出,发票先开
  • 知识产权申报费用多少钱
  • 个体户雇佣临时工
  • 个体工商户如何注册
  • 制造费用结转后有没有余额
  • 现金账怎么记账图例
  • 年度销售返利的计算方法
  • 设备维修增值税
  • 人工材料成本怎么分配
  • 专利转让费用能否计入研发
  • 发票未到货已到怎么入账
  • 一次性离职补偿金如何避税
  • 燃气公司开发票的工程款入什么会计科目核算与分录怎么写?
  • 金蝶软件钩稽怎么操作
  • 金税三期收回长期投资所得税如何申报?
  • 银行代扣印花税
  • 销售给个人的货款要走公户吗
  • 个人对公益事业的认识与看法
  • 会员卡系统多少钱一套
  • 三代税款手续费是什么意思
  • 土地增值税进项税
  • 职工福利费计提标准是多少
  • 网吧登录qq安全吗
  • 生产企业结账流程
  • 如何恢复撤回的信息微信
  • 购买商场储值卡能退么?
  • 退货 会计
  • 表单的基本语法格式
  • php有很多流行的mvc框架,这些框架可以
  • php如何实现登录和注册
  • 发票系统技术维护费
  • 废旧物资回收企业所得税优惠政策
  • 小企业的费用包括生产成本吗
  • 公允价值变动损益在利润表哪里
  • php自定义变量的方法是
  • 劳务公司差额计税的税率
  • 蓝桥杯咋样
  • 淘宝运费险费用很高
  • 试生产产品计入研发费用吗
  • 工资是当月计提当月发放还是当月计提下月发放
  • 上缴非税收入的税种
  • 制造业企业无形资产怎么摊销
  • 商贸公司用购进产品吗
  • 长期股权投资成本法会计处理
  • 公司突然改变工资结构
  • 高新技术企业财务指标
  • 汇算清缴退款如何做账
  • 向非关联企业捐赠现金能不能抵扣
  • 未缴纳或未足额缴纳出资的股东
  • 计算机上没有运行windows无线服务
  • win8怎么设置
  • 的四个步骤
  • 局域网共享提示无法访问 你没有权限
  • 如何解决windows无法访问指定设备
  • window8所有程序在哪
  • 搜索应用界面
  • windows1020h2版本怎么样
  • 如何理解js中的原型
  • 批处理怎么用
  • cocos js
  • 网页javascript错误
  • 简单实现异步编码的方法
  • 网页上面的收藏夹显示
  • shell脚本中判断grep的结果
  • 改变的拼音
  • Python出现keyerror
  • 黄南同仁县海拔多少米
  • 工会经费网上怎么申报
  • 违法的税务记录怎么消除
  • 如何查看税务登记记号
  • 出口退税是哪个环节交的
  • 新加坡国税局的电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设