位置: 编程技术 - 正文

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

  • 计提房产税和土地使用税附件
  • 农产进项税是多少税率
  • 一般户用途可以是往来款吗
  • 水资源税怎么入账
  • 高新技术企业费用认定
  • 金税三期账号是自己申请吗
  • 已经报销的发票还会查吗
  • 企业公益性捐赠支出税前扣除标准
  • 生产经营期间固定资产报废清理的净损失
  • 固定资产暂估折旧能税前扣除吗
  • 由于疏忽装修费用之前没有摊销应如何处理
  • 企业期货投资收益何时记账的
  • 境外所得纳税
  • 深圳制造业税收
  • 公益性捐赠的个税
  • 企业无形资产包括
  • 个人取得的哪些收入属于经营所得
  • 付出去的款项退回怎么做账
  • 其他权益工具投资公允价值变动怎么计算
  • win10双屏怎么切换屏幕
  • ie浏览器打开后显示已停止工作
  • 手机压缩包损坏怎么修复
  • 一刀999是什么游戏
  • 推荐几个优秀的电影
  • 房东不开发票违法吗
  • 公司聚餐计入什么会计科目
  • 广告联系电话
  • 抵押房屋可以出卖吗
  • 公司股权分红款需要税吗
  • 电脑重装win7系统后无法连接网络
  • 在win7系统中,添加打印机驱动程序
  • php怎么创建数据表
  • 松木山在哪
  • 埃莫尔斯
  • 汇兑结算计入什么会计科目
  • 如何取消库存商品订单
  • 政府会计计提折旧会计分录2022
  • openvino使用
  • thinkphp获取数据库数据
  • ctf web2
  • 如何正确配置防火墙安全策略
  • 对供应商的罚款通知怎么写
  • 应付账款为什么要算增值税
  • 员工出差过程中意外死亡算工伤吗
  • mysql 子查询
  • 什么是指企业的所有部门彼此协调为顾客服务
  • 哪些企业可以开发票
  • 金蝶凭证汇总表怎么打印
  • sqlserver2005属于
  • 空白发票作废怎么处理
  • 劳动仲裁赔偿款会计分录
  • 什么是企业所得税收入
  • 单位出租不动产,按照5%的征收率计算应纳税额
  • 年度汇算清缴后补税,账务要调整吗
  • 现金流量表现金及现金等价物净增加额
  • 小规模开票额度有限制吗
  • 固定资产折旧计入什么费用
  • 季度盈利弥补以前年度亏损的账务处理
  • 进项税额转出还要交税吗
  • 有哪些不动产
  • 赔偿给别人的钱还能要回来吗
  • 待处理财产损益是备抵类科目吗
  • 个体工商户怎样申请开票
  • wind如何安装
  • mmc不能打开文件win10
  • 微软6月24号
  • linux ifconfig命令详解
  • 如何在安装未知应用中修改权限
  • Windows系统通过注册表实现打开CMD并定位到指定文件夹
  • jquery手风琴折叠菜单
  • k mean python
  • js获取对象key的方式有哪些
  • node.js redis
  • android中的几种动画
  • python程序开发
  • 基于js实现微信直播
  • 电子税务局官网江西省
  • 红字发票税务局不愿意退税怎么处理
  • 税控盘服务费必须每年交吗为什么
  • 深圳国税app官方下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设