位置: 编程技术 - 正文

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不)

  • 税前利润是什么利润
  • 企业所得税怎么做账
  • 自然人密码怎么注册
  • 工程材料发票备注要求
  • 生产企业的基础设施是指
  • 实收资本能直接转出来吗
  • 购买固定资产是费用吗
  • 上月发票错误退回怎么做账
  • 天猫的费用一共17个分别是什么
  • 经济法中企业营业收入包括哪些?
  • 一次性工伤医疗补助金和一次性伤残补助金
  • 计提未发放的工资是否交个税
  • 小规模转一般纳税人生效时间
  • 出口退税银行账户备案
  • 建筑业外出经营管理办法
  • 税法相关问题
  • 营增改的四大“增效剂”
  • 研发费用没做账怎么调账
  • 公司发生的费用需要交税吗
  • 外资企业税率是多少
  • 信用卡购物消费怎么算
  • win10开机会自动打开网页
  • 怎么用苹果6splus
  • bios怎么恢复出厂设置会怎么样
  • uniapp微信小程序支付流程
  • win10最新版本22h2激活
  • 入库前仓储费用应计入
  • php运行js代码
  • 增值税的具体内容包括
  • 计提短期借款利息资产增加还是减少
  • 一文读懂谢娜张杰购房跳单事件始末
  • 分公司注销,总公司账务处理
  • PHP使用pear实现mail发送功能 windows环境下配置pear
  • thinkphp 部署
  • 小规模纳税人低于30万怎么填报申报表
  • gmt微调
  • 营业外支出增加的原因
  • 会计分录格式范本手写
  • 汇算清缴期间费用保险费是什么
  • 银行开出的承兑怎么兑现
  • python的元组有什么用
  • 企业支付股利属于由( )引起的财务活
  • 其他应付款转实收资本股东会决议
  • 结转制造费用用红字还是蓝字写
  • 法定盈余公积和任意盈余公积可用于
  • 外购货物用于促销的账务处理
  • 暂估成本分录怎么写
  • 给客户的回扣如何处理
  • 生产经营收入总额填什么金额
  • 红冲发票视频教程
  • 农业合作社销售农产品怎样纳税
  • 养老保险滞纳金计算器
  • 金蝶的核算项目是什么意思
  • 计入税金及附加借方的内容
  • 金税盘开完发票可以直接拔掉吗?
  • 制造费用分配结转表
  • 事业单位会计岗位属于哪一类
  • 交易性金融资产属于什么科目
  • mysql四个事务的四个特性
  • win7系统多久不动自动关机
  • npscheck.exe - npscheck是什么进程 有什么用
  • win7未能启动怎么办
  • windows10mobile壁纸
  • w8系统ie浏览器在哪
  • jquery.ui
  • jquery的使用步骤
  • [置顶]游戏名 TentacleLocker
  • 简述javascript执行原理
  • js下拉列表框
  • node.js教程详细
  • unity导出3d模型
  • js实现物体移动
  • unity ulua
  • NGUI之UIRoot
  • 'd:skin' 开头的无效内容。此处不应含有子元素。
  • 日历 caldav
  • 发票查验明细怎么截屏
  • 实木地板什么
  • 办理跨区域事项报验
  • 工商局税务局合并了吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设