位置: 编程技术 - 正文

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

  • 服务费收入是什么
  • 车船税征税范围口诀
  • 减免增值税如何结转
  • 增值税专票如何作废
  • 什么是应付职工薪酬设定提存计划
  • 资产的计税基础怎么计算
  • 顺流交易为什么调整被投资方
  • 消费税为什么要计入成本
  • 小微企业季度申报增值税流程
  • 企业所得税低于多少不用交
  • 稳岗补贴给谁
  • 明细分类账采用的格式有
  • 年度结转之前需要做什么
  • 企业为什么用银行承兑汇票
  • 甲供材简易征收税率
  • 混业经营试点
  • 关于保安员服务内容主要包括
  • 完税凭证号是几位数
  • 所得税汇算清缴补税的会计处理
  • 应收账款负数可以调到哪个科目
  • 购买库存商品收到发票怎样做分录
  • 金税盘上传参数测试连接失败
  • 账面价值和账面成本的区别
  • 企业所得税季度申报表A类
  • 购买承兑汇票怎么做账
  • 公司支付货款怎么做账
  • 餐费专用发票怎么抵扣
  • linux中cut命令详解
  • form表单提交数组
  • 不属于工资薪金所得的是
  • 零息债券利息
  • 合同中违约金
  • 人工智能示例
  • 未分配利润可以弥补亏损吗
  • 多表联动查询
  • 初学者安装visual studio
  • 基于javaweb的图书馆管理系统
  • php查询数据是否存在
  • 收到外币收入怎么入账
  • 没有综合所得的经营所得如何预扣预缴个税
  • 销售费用占销售成本比例
  • 企业一直零申报不经营
  • 工程项目过路费是指什么意思啊
  • 虚开发票是指怎样?
  • 企业代扣代缴个人所得税申报流程图
  • 餐饮服务规定
  • 基础电信服务和增值电信服务税率
  • 股东退股如何清算表格
  • 什么叫非限定性不定方程
  • 加计抵减不符合怎么办
  • mysqld-nt: Out of memory (Needed 1677720 bytes)解决方法
  • 企业所得税特殊事项
  • 应付职工薪酬的工资是实发工资还是应发工资
  • 政府专项资金补助计入什么科目
  • 搞活动的现金红包怎么用
  • 进项已抵扣,退货发票怎么处理
  • 公司付款给个人现金
  • 信用证保证金的计算公式
  • 捐赠支出算费用吗
  • 汽车保险费能不能不交
  • bios设置的完整说法
  • Vista 新命令收集整理完整版
  • win8系统如何关闭杀毒系统
  • win7系统怎么启用本地连接
  • Unity3D Editor类(Inspector) 编写经验总结
  • css各种滤镜的应用是什么
  • unity自带的代码编辑器
  • linux内核讲解
  • 有关中秋节的古诗
  • 深入理解计算机系统
  • 三分钟带你玩转灭火器
  • 主机端口扫描程序设计python
  • javascript面向对象精要
  • 个税更正申报如何导出大厅申报表
  • 湖南省低保电话是多少?
  • 国家纳税查询系统
  • 即征即退什么时候退
  • 补缴印花税分录
  • 房没交契税和物业维修金房屋预告登记证明可以打印吗
  • 结售汇选择汇还是钞好
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设