位置: 编程技术 - 正文

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

  • 可抵扣暂时性差异是指在确定未来收回资产
  • 非居民个人利息所得个税税率
  • 境内单位和个人向境外单位提供服务
  • 已开票未确认收入怎么填写纳税申报表
  • 预缴所得税的计税依据
  • 金三财务报表如何更正
  • 报验户预缴个税怎么算
  • 资本公积转增股本什么意思
  • 没有营业收入要报税吗
  • 小规模纳税人销售额
  • 补发工资是否需要交税
  • 建筑业企业所得税2%
  • 银行手续费要发票什么时候开始的
  • 海关进口增值税专用缴款书如何抵扣
  • 半年付一次房租,房东一般提前多长时间催租
  • 怎么区分汇总原始凭证与累计原始凭证?
  • 外资租赁房屋房产税和土地使用税怎么申报?
  • 酒店住宿收入确认原则的条件
  • 个人公积金公司这178,个人交多少
  • 调整低电量通知怎么设置
  • 食堂充值管理制度
  • 网速突然变差是什么原因
  • 苹果Mac系统怎么切换输入法
  • 克罗地亚佩列沙茨
  • 财务会计制度
  • 不征税收入有哪些条件
  • PHP:session_register()的用法_Session函数
  • shwiconem.exe - shwiconem是什么进程 有什么用
  • windows优化设置
  • 增值税专票如何查询对方是否抵扣
  • 委托贷款会计处理流程
  • 海关专用缴款书认证的步骤和说明
  • php 文件系统
  • PHP:imagefilledellipse()的用法_GD库图像处理函数
  • citespace关键词共现分析
  • react connect用法
  • 社会保险个人部分计入什么科目
  • 中秋快乐图片大全
  • 实收资本印花税税率多少
  • phalcon model在插入或更新时会自动验证非空字段的解决办法
  • 企业注销亏损怎么处理
  • 境外捐赠入账
  • php.ini上传限制
  • 变更税务法人需提供银行流水吗
  • 物流辅助服务属于什么科目
  • 酒吧会计如何做工作
  • 企业收取的丢失物品
  • 单位车辆折旧费可以税前扣除吗
  • 库存商品暂估入库科目怎么做
  • 开票金额大于收入金额
  • 银行账户收到养老金怎么办
  • 简易征收怎么申报
  • 收到第三方补助怎么做账
  • 当月财务费用怎么算
  • 建筑业发票的相关要求
  • 个人独资企业的投资人以其个人财产对企业债务承担
  • 内账税费计入什么科目
  • 如何做好现金流
  • 审核记账凭证的心得
  • 银行汇票如何兑现金
  • 伤病假条
  • centos6.9关闭防火墙命令
  • 清理c盘清理
  • ubuntu14.4安装教程
  • win7与xp文件共享
  • shell 写入文本
  • windows8.1关机
  • ubuntu 无法正常启动
  • centos设置禁ping
  • win11连接win7共享打印机
  • linux中软链接和硬链接的区别
  • unity connected games
  • 不使用jsp
  • 单例类python
  • nodejs ejs
  • node.js上传文件
  • javascript教程完整版
  • 浙江 国家地理
  • 海珠税务局许丰
  • 全年个人一次性奖金单独计税优惠
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设