位置: 编程技术 - 正文

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

  • 转让金融商品应交增值税计入
  • 补缴个税差额有时间规定吗
  • 当月出口的货物,可以过几个月申报吗
  • 所得税的会计分录有哪些
  • 购销合同需要盖合同章吗
  • 购买车间使用的设备计入什么
  • 会计账本需要装订的有哪些
  • 存续分立的账务处理
  • 弱电系统多少钱
  • 农业免税企业账户怎么查
  • 企业所得税应税所得率
  • 国有企业无偿划转资产需要交税吗?
  • 购买的员工福利需要缴纳印花税
  • 销售库存商品计入什么科目
  • 补缴社保的工资表
  • 总资产报酬率计算举例
  • 航天金税服务费怎么做账
  • 普通发票和专用发票的税点一样吗
  • 建筑业预缴增值税税率
  • 消费税有哪几种纳税方式
  • 公司支付广告费怎么入账
  • 小规模纳税人不用交增值税吗
  • 拍卖中,必须规定一切税费由买受人承担吗?
  • 最新最全的消费软件
  • 净资产收益率计算公式用期末净资产
  • 母公司给子公司担保
  • 建筑施工的会计科目
  • 住宿费进哪个科目
  • 需要缴纳消费税的委托加工存货,由受托方
  • 年末提取盈余公积的会计分录怎么写
  • 1697510649
  • 银行增值税免税收入有哪些
  • deepin如何
  • 应付账款暂估借方余额怎么处理
  • linux的ip查看
  • deepin 20 wifi
  • mac笔记本装了双系统后打开苹果系统和原来一样吗
  • 核定征收的企业怎么交所得税
  • 修建污水厂需要办理哪些审批
  • php ftp管理系统
  • php中分页功能的实现
  • php traits
  • 企业缴纳职工社保政策
  • 海关交税标准表
  • dl.php怎么打开
  • [深度学习] 基于切片辅助超推理库SAHI优化小目标识别
  • 网页制作零基础教程
  • elm命令 纯文本邮件客户端程序
  • 著作权费用
  • 标书中组织结构是什么意思
  • php调用第三方接口代码
  • 织梦cms要钱吗
  • 园林绿化工程公司简介
  • 福利用品可以抵增值税吗
  • 劳务报酬的个人所得税
  • 合作社分红计入什么科目
  • 纳税滞纳金的计算方法
  • 房租付了没有及时取得发票怎么入账
  • 租入的厂房
  • 股权转让可行性
  • 企业会计核算中,对账的内容主要包括
  • 有没有确认
  • 企业对疫情
  • 小规模纳税人租赁费税率
  • 建筑工程合同中社保基金保证金
  • 净资产=资产-负债
  • 序时账是明细账吗
  • 各单位应当设置专职能源管理岗位
  • YunDetectService.exe是什么进程?YunDetectService.exe禁止使用的方法
  • win7旗舰版系统还原无法启动
  • windows故障
  • win8热点设置
  • 安装ubuntu 20.10
  • 怎么用windows
  • 一边做游戏一边学英语
  • cmd命令是干嘛的
  • python 任务 调度 管理
  • nodejs实现HTTPS发起POST请求
  • adb查看ip地址
  • 支付宝申领失业金申请审核多久
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设