位置: 编程技术 - 正文

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

  • 发票丢失的税务处罚
  • 进项税和销项税税率一样吗
  • 租的房子装修费如何入账
  • 税务申报差额征收 服务减除清单
  • 会计制度方法
  • 期末数减期初数等于
  • 发票专用章章号是什么
  • 2019小规模纳税人税率
  • 法人分配利润分录
  • 机动车销售发票怎么抵扣
  • 增值税多缴税款退税政策
  • 公司出差开自己的车怎么计算损耗
  • 专用发票包括增值税吗
  • 营改增劳务派遣
  • 安装工程中安装工程与市政路灯工程界定不正确的是
  • 补去年的税款怎么做账
  • 生产企业出口退税的计算方法
  • 一月份的工作日是多少天
  • 企业的资金怎么使用
  • 单位报销的发票
  • 购买标书的费用计入什么科目
  • 特殊性税务处理和一般性税务处理的区别
  • 工资预支怎么做账
  • 购买原材料暂估入账的会计分录
  • 或有负债披露原则
  • 如何维护电脑系统安全?
  • 企业收到科技创新发票
  • 事假扣款进什么科目
  • php mb_convert_encoding
  • 租赁费和场地租赁费区别
  • 如何在Mac上更改我的Apple ID
  • PHP:mcrypt_enc_get_supported_key_sizes()的用法_Mcrypt函数
  • api接口是干嘛的
  • 账户维护费计入什么会计科目
  • element - - - - - 你不知道的loading使用方式
  • 跨地区经营建筑企业预缴增值税
  • 值得深思的短句
  • 多智能体概念
  • php 下载上传文件
  • python如何将字典中的键值互换
  • 可转换优先股会稀释股权吗
  • 小规模能取得专用发票吗
  • 工资计提未发放,调增还是调减
  • 合伙企业与公司一样具有高度的人合性
  • 股权转让怎么查
  • sql计算字符串中文个数
  • linux中mongodb启动
  • 公司福利费用会计分录
  • sql怎么用sql语句创建表
  • 事业单位银行开户规定
  • 无形资产账面价值计算公式
  • 一般纳税人的招待费会计分录
  • 出口退税分类管理三类企业
  • 企业设备融资是什么意思?
  • 购买固定资产是应付账款还是其他应付款
  • 会计总账怎么登账
  • 工业企业的材料销售收入应计入什么
  • mysqldump -h
  • freebsd使用wifi
  • win8系统自带截图
  • win10的ubuntu
  • xp系统必备软件
  • vi编辑器使用教程
  • apache2.4.46配置
  • kprcycleaner.exe是什么
  • win7空间不足
  • .json()
  • jquery判断div是否显示
  • javascript entries
  • 物理引擎百科
  • 用nodejs做的项目
  • linux中的shell命令
  • javascript模板
  • javascript教程chm
  • jQuery中通过ajax的get()函数读取页面的方法
  • js中new一个函数
  • 如何查询企业税务情况
  • 新注册的公司应该做什么
  • 国税企业所得税网上申报
  • 云开票怎么报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设