位置: 编程技术 - 正文

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

  • 可供出售金融资产会计处理
  • 个体工商户开普票限额最新规定
  • 购进材料运输费属于什么会计科目
  • 哪些企业需要纳税
  • 企业关联方利息支出税前扣除的标准扣除
  • 新的企业所得税暂行条例
  • 掌握无形资产核算方法
  • 外币报表折算差额在会计报表中应作为
  • 增值税和实际缴税不符
  • 补税款的分录应该怎么写
  • 自产自销的产品怎么做账
  • 应征增值税不含税销售额是什么意思
  • 销售蔬菜水果需要什么证件
  • 个人购买经济适用住房享受减半征收契税优惠应报送
  • 固定资产后续支出是指固定资产在使用过程中发生的
  • 贴现利息计算器
  • 谨慎性原则的具体体现有哪些
  • 尚未支付的货款属于什么会计要素
  • won11更新
  • windows 10 21h1
  • php ajax json
  • win10玩游戏fps低怎么办
  • mac os右键
  • 员工奖励股权
  • 本月购买原材料怎么入账
  • 免费投放资产收益的平台
  • 企业所得税扣除标准表
  • phpsubstr_replace
  • php常用方法
  • 【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?
  • unity怎么打包unitypackage
  • php zmq
  • java rest接口
  • 销售退货和折让是收入吗?吗?
  • 民办非企业培训机构注册流程
  • 防伪税控开票
  • php框架是干什么的
  • mongodb性能测试
  • mongodb的使用教程
  • python创建ndarray
  • python字符串类型及操作
  • 现金溢余涉及的科目
  • 企业所得税的营业成本包括期间费用吗
  • sqlserver存储过程if语句
  • 出货后90天付款
  • 政府会计制度应收账款坏账准备
  • 美容院收入怎么做会计分录
  • 单位食堂用餐免费的账务处理
  • 模具报价成本核算方法
  • 发票超过密码区一点点
  • 酒店开办费包括哪些项目
  • 补缴以前年度企业所得税分录怎么写
  • 商品流通企业会计第三版答案倪明辉
  • sysbench内存性能测试
  • sql怎么比较两个表字段的内容
  • windows xp系
  • win10执行数据保护如何开启
  • centos7如何修改用户名
  • debian安装zsh
  • 桌面上的软件是什么
  • centos6.5查看cpu信息
  • xp如何改windows7
  • 写出linux安装的详细步骤
  • win7任务栏跑到右边了
  • win8磁盘占用率高怎么处理
  • 使用iso镜像文件
  • win7系统玩游戏怎么样
  • 安卓开发教学视频
  • jquery插件库怎么导入
  • jquery的实现原理
  • jquery mobile demo
  • 下载随手笔记
  • jQuery ready()和onload的加载耗时分析
  • 深入理解中国式现代化
  • 什么是城建税的纳税义务人
  • 江苏省扬剧团演出的扬剧罗帕记
  • 亦庄税务局电话号码
  • 广西地方税务局2017年公务员拟录用
  • 国税三所电话
  • 河南省2020年12月纳税申报截止日期
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设