【Python line_profiler memory_profiler】分析每一行代码的耗时及内存占用情况
一、Python 借助 line_profiler 模块 查看每一行耗了多少时间?
1. 安装
windows10、python3.7.4安装,安装得个2分钟左右
pip install line_profiler
2. 使用
from line_profiler import LineProfilerdef func_line_time(follow=[]):def decorate(func):@wraps(func)def profiled_func(*args, **kwargs):try:profiler = LineProfiler()profiler.add_function(func) # 增加每列的行数for f in follow:profiler.add_function(f)profiler.enable_by_count() # enable_by_count进行执行以获取消耗的时间return func(*args, **kwargs)finally:profiler.print_stats() # 显示结果return profiled_funcreturn decorate@func_line_time()
def process(self, params):import pandas as pd`在这里插入代码片`pass
3. 结果
- Hit:代码运行次数;
- %Time:代码占了它所在函数的消耗的时间百分比,通常直接看这一列。
- 在这里我们主要观察%Time 所占用的百分比,对百分比较高的行数进行优化为第一选择。
二、Python 借助内存分析库 memory_profiler 查看每一行消耗了多少内存?
1. 安装
pip install memory_profiler
2. 使用
# 2. 借助内存分析库 memory_profiler 查看每一行消耗了多少内存?
from memory_profiler import profile# precision 精确到小数点后几位
# stream 此模块分析结果保存到‘memory_profiler.log’ 日志文件。如果没有此参数,分析结果会在控制台输出
# @profile(precision=4, stream=open('memory_profiler.log', 'w+'))
@profile(precision=4)
def process():print('memory analysis------------')passprocess()
print('------------endl------------')
3. 结果
- Mem 是总消耗的内存
- Increment 是第几行代码运行完后增加的内存
- 通过memory_profiler 我们可以分析到每一行运行完后占用的内存。这部分内存在进程没结束的时候是不好被回收掉的,因此在这里如果有哪一行逻辑运行一直在增加内存消耗,则这行可能是罪魁祸首。
参考:
- https://blog.csdn.net/qq_35869630/article/details/106731783?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1-106731783.nonecase&utm_term=python%E6%9F%A5%E7%9C%8B%E5%87%BD%E6%95%B0%E6%B6%88%E8%80%97%E7%9A%84%E5%86%85%E5%AD%98
【Python line_profiler memory_profiler】分析每一行代码的耗时及内存占用情况相关推荐
- java内存占用分析_JVM内存占用情况深入分析
本文转自阿飞的博客 很多同学都问过这个问题,为什么我的Xmx设置4g,但是TOP命令查询RES却占用5G,6G,甚至10G.这个正常吗?也可以说正常,也可以说不正常,怎么判断?笔者今天就要为你解答这个 ...
- Shell脚本和Python查看Nginx并发连接数、进程数和常驻内存占用情况
Shell脚本查看Nginx并发连接数.进程数和常驻内存占用情况 http://xiaoyongxing1.blog.163.com/blog/static/642807522015144302240 ...
- python 东哥 with open_Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks
作者:xiaoyu 微信公众号:Python数据科学 前言 学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boke ...
- 如何把python可视化到前端_Python一行代码搞定炫酷可视化,就用这个工具!
学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等.这些可视化库都有自己的特点,在实 ...
- python炫酷可视化_Python 一行代码搞定炫酷可视化,你需要了解一下 Cuffl
前言 学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等.这些可视化库都有自己的特点 ...
- Python 把较长的一行代码分成多行的技巧
概述:在写代码过程中,经常遇到一行代码很长的情况.为了让代码显得整齐干净,就需要把一行代码分成多行来写,Python中有三种小技巧可以实现该功能: 1.用反斜杠\链接多行代码 2.用小括号括起来 3. ...
- python基础知识-8-三元和一行代码(推导式)
python其他知识目录 1.三元运算(三目运算) 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 格式:[on_true] if [expression] else [on_false] ...
- Python妙用:使用一行代码下载视频
"如何用一行Python代码下载<后浪>等全网视频" 01 基于Python开发 是的,这款下载工具包是基于Python开发的,实际它不只支持视频下载,还支持图片.音乐 ...
- python 点到围栏距离_Python一行代码处理地理围栏
最近在工作中遇到了这个一个需求,用户设定地理围栏,后台获取到实时位置信息后通过与围栏比较,判断是否越界等. 这个过程需要用到数据协议为GEOjson,通过查阅资料后,发现python的shapely库 ...
最新文章
- TIOBE 1 月编程语言:Python 摘得 2020 年度编程语言!
- 马斯克要复活恐龙?乌龙还差不多
- parted如何将磁盘所有空间格式化_linux下大于2T的硬盘格式化方法
- 如何在 ASP.NET Core 中使用 LazyCache
- java名片_javaweb名片管理系统
- 又是绩效考核时,KPI 和 OKR 到底怎么考?
- 李宁院士二审宣判,改判10年
- 计算机CPU核的位数,如何查cpu位数
- 添加分隔符|的几种方法
- Minio Utils
- ZOJ1516 Uncle Tom's Inherited Land(二分图最大匹配)
- 【结构体】 结构体引用、结构体数组指针、包含结构的结构体
- hdu 4745 区间dp
- php中常用的输出语句及其区别
- 接雨水---LeetCode----(20)--左右夹逼法
- 闪客工具:greensock出的TransformManager类
- 口算练习机/儿童数学宝/口算神器 开发方案,LCD液晶显示驱动IC-VK1621B,可提供方案/技术支持
- mycat分库分表+springcloud微服务小案例实现
- 基于Java毕业设计中山学院教室管理系统源码+系统+mysql+lw文档+部署软件
- 笨鸟先飞之Java---缠缠绵绵的注解和注释
热门文章
- web站点的欢迎页面
- Android AlertDialog设置宽度显示不正常的问题
- BZOJ4401 块的计数
- 编写函数求两个整数 a 和 b 之间的较大值。要求不能使用if, while, switch, for, ?: 以 及任何的比较语句。...
- linux - centos yum安装LAMP环境
- C#基础——数组(冒泡排序)
- BZOJ4292 : [PA2015]Równanie
- CMD——ping及用其检测网络故障
- 【目标检测】yolo系列:从yolov1到yolov5之YOLOv1详解及复现
- pygame是python的一个库吗,python学习pygame,,基本库导入impor