位置: 编程技术 - 正文

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

  • 财产租赁所得怎么交税
  • 累计折旧 计提折旧
  • 出口商品认证
  • 出售技术所有权的会计分录
  • 未达起征点附加税还需要扣税嘛
  • 股东多交投资款处理
  • 预交税费怎么做分录
  • 贷款利息进项税额转出
  • 固定资产出租后还要折旧吗
  • 开具的增值税发票丢失最新处理办法
  • 微小企业税率由3%变为1%客户要求降价
  • 办理出口退税需要的资料
  • 学校管理费是什么意思
  • 危险废物处理原则
  • 资产负债表季度申报期末余额怎么填
  • 当月进项已认证,发现票有问题怎么处理
  • 服务费的发票
  • 外企企业所得税怎么计算
  • 管理费用明细是什么意思
  • 应收账款负数可以调到哪个科目
  • 清卡信息还未生成请稍后再试什么意思
  • 移动通信定额发票
  • 处置股权后相应债权坏账损失怎么处理?
  • 笔记本电脑的触摸板怎么用右键
  • macbookpro提醒事项
  • 扣客户的罚款会计科目
  • 指定的网络名不再可用 共享打印机00x0000040
  • 以前年度企业所得税分录
  • 企业的支出包括
  • 小微企业所得税税收优惠政策2023年
  • 前端调用后端代码
  • php的!
  • 多计提的个人所得税怎么冲回
  • 会计期初余额和期末余额计算公式
  • 块元素和行内元素区别
  • 基于Wav2Lip的AI主播
  • transformerss
  • domain codomain range
  • http命令
  • 微众银行贷款到期晚2天还
  • 增值税的滞纳金税率
  • 应交税费为负数要调整吗
  • 工程发票多少点
  • 实收资本不能动吗
  • msdn sql server
  • 小规模纳税人减半征收的六税两费
  • 行政事业单位非税收入管理办法
  • 车船税是什么样子的?
  • 固定资产盘亏造成的损失计入什么科目
  • 事业单位取暖费2023
  • 银行退回转账
  • 当月只有进项税额会计怎么做账
  • 所得税汇算清缴前取得跨年发票
  • 投标保证金分为几种
  • 挂靠被查出来后挂靠费怎么处理?
  • 次年发上年年终奖
  • 增值税年末必须要交吗
  • 减少注册资本要公示多少天
  • win10 bios模式
  • win8提升模式
  • ssd安装centos7
  • centos查看硬件设备
  • win10开始菜单样式
  • window10蓝瓶
  • root忘记密码了怎么办
  • win10 mobile 1709
  • unity获取mesh网格数据
  • 简述opengl的编程步骤
  • 利用css样式控制文本的字体属性是什么
  • HTML <!DOCTYPE> 标签
  • Node.js中的construct构造函数
  • 学习雷锋好榜样
  • node.js详解
  • android4.4w
  • 广州税务局怎么开发票
  • 税务总局着装管理办法
  • 高新区税务局发工资时间
  • 股权转让查账重点查什么
  • 税务局政务公开目录
  • 叶青和奚卫华
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设