位置: 编程技术 - 正文

python 性能优化方法小结(python 效率优化)

编辑:rootadmin

推荐整理分享python 性能优化方法小结(python 效率优化),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Python性能优化指南,python性能调优,python性能调优,python 运行速度优化,Python性能优化指南,python性能调优,Python性能优化指南,python性能优化,内容如对您有帮助,希望把文章链接给更多的朋友!

提高性能有如下方法

1、Cython,用于合并python和c语言静态编译泛型

2、IPython.parallel,用于在本地或者集群上并行执行代码

3、numexpr,用于快速数值运算

4、multiprocessing,python内建的并行处理模块

5、Numba,用于为cpu动态编译python代码

6、NumbaPro,用于为多核cpu和gpu动态编译python代码

为了验证相同算法在上面不同实现上的的性能差异,我们先定义一个测试性能的函数

定义执行的算法如下

对应的数学公式是

生成数据如下

第一个实现f1是在内部循环执行f函数,然后将每次的计算结果添加到列表中,实现如下

当然实现这种方案的方法不止一种,可以使用迭代器或eval函数,我自己加入了使用生成器和map方法的测试,发现结果有明显差距,不知道是否科学:

迭代器实现

eval实现

生成器实现

python 性能优化方法小结(python 效率优化)

map实现

接下来是使用numpy的narray结构的几种实现

上面的f5和f6只是使用的处理器个数不同,可以根据自己电脑cpu的数目进行修改,也不是越大越好

下面进行测试

测试结果如下

发现f8的时间最短,调大一下时间精度再测一次

发现使用map的性能最高,生成器次之,其他方法的性能就差的很远了。但是使用narray数据的在一个数量级,使用python的list数据又在一个数量级。生成器的原理是并没有生成一个完整的列表,而是在内部维护一个next函数,通过一边循环迭代一遍生成下个元素的方法的实现的,所以他既不用在执行时遍历整个循环,也不用分配整个空间,它花费的时间和空间跟列表的大小是没有关系的,map与之类似,而其他实现都是跟列表大小有关系的。

内存布局

numpy的ndarray构造函数形式为

np.zeros(shape, dtype=float, order='C')

np.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)

shape或object定义了数组的大小或是引用了另一个一个数组

dtype用于定于元素的数据类型,可以是int8,int,float8,float等等

order定义了元素在内存中的存储顺序,c表示行优先,F表示列优先

下面来比较一下内存布局在数组很大时的差异,先构造同样的的基于C和基于F的数组,代码如下:

下面来测试性能

输出如下

可知,C内存布局要优于F内存布局

并行计算

未完,待续。。。

标签: python 效率优化

本文链接地址:https://www.jiuchutong.com/biancheng/377177.html 转载请保留说明!

上一篇:Python+Selenium自动化实现分页(pagination)处理(selenium自动化步骤)

下一篇:Python中你应该知道的一些内置函数(你知道python不)

  • 企业所得税视同销售的会计处理是?
  • 银行存单丢失怎么办理取款
  • 公共汽车出租车
  • 减免税款借贷方表示
  • 无形资产出资入股流程
  • 居民转供电收费标准
  • 银行贷款印花税是什么意思
  • 小规模纳税人不允许开具零税率发票
  • 挂靠企业所得税怎么办?
  • 无使用价值的存货属于资产吗
  • 折扣发票有什么作用
  • 所得税汇算清缴调整项目
  • 虚开增值税发票具体操作是怎样的?
  • 内账价税分离余额怎么处理
  • 货物运输企业纳税多少
  • 增值税发票专票有效期
  • 保安服务费可以计入劳务费吗
  • 个税个人所得税返回
  • 个人房补申请书怎么办
  • 高新企业研发投入后产出增加
  • 会计调账有哪些方式
  • 独立核算分公司可以享受小型微利企业优惠吗
  • 收代扣代缴个税手续费会计分录
  • 不征税发票的12个税种
  • 光纤熔接发票属什么类别
  • 住宿发票3%和6%区别
  • 可转换债券具有债权和股权双重特征
  • 开发间接费用定义
  • 收到股改代扣代缴税款
  • 哪些费用发票可以报销
  • 域名怎么交费
  • php vr
  • 材料成本差异的会计分录
  • vf中显示命令
  • 什么情况下专票税率为1
  • 资本化利息支出现金流量表计入哪里
  • 公司购买购物卡送客户的会计分录
  • 预缴税款为什么不能跨月申报
  • sqlserver数据库锁表如何解锁
  • php 上传
  • 海关报关单位注销操作规程
  • 商品流通企业采购费用
  • 酒店客房成本计算公式
  • 坏账核销的会计规定
  • 水泥建材销售公司有哪些
  • 实收资本账务处理流程
  • 新公司固定资产盘点总结
  • 土地作为无形资产入账依据
  • 未交税金免抵退多少税
  • 劳务税可以抵扣企业税比例
  • 农业免税企业开票有限额吗
  • 公允价值模式下出售投资性房地产
  • 发生额大额标准怎么确定
  • 买水果送礼
  • 房地产开发企业销售自行开发的房地产项目
  • 会计准则 职工福利
  • sql server不可用或不存在什么意思
  • 重新组织是什么意思
  • 存储过程sql server
  • mysql explain的用法(使用explain优化查询语句)
  • 系统win10安装
  • win10系统任务栏卡顿
  • explore是什么进程
  • windows8的ie浏览器在哪
  • opengl clamp
  • js中不用var声明
  • win sc
  • cocos2d官网
  • 批处理怎么操作
  • 老生常谈的近义词
  • JavaScript实现同时调用多个函数的方法
  • 客户端名称 android-
  • jquery往对象添加元素
  • python生产
  • bootstrap要学到什么程度
  • 体检机构 保险
  • 江苏叉车考试
  • 数字证书使用方法
  • 进口哪些情况要交税
  • 养老专业在职研究生好吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设