当前位置: 首页 > 编程日记 > 正文

一行代码搞定 Python 逐行内存消耗分析

402c895daa1012d683588194babfb8ce.gif

作者 | 费弗里

来源 | Python大数据分析

我们即将学习的是:一行代码分析Python代码行级别内存消耗

很多情况下,我们需要对已经写好的Python程序的内存消耗进行优化,但是一段代码在运行过程中的内存消耗是动态变化的,这种时候就可以用到memory_profiler这个第三方库,它可以帮助我们分析记录Python脚本中,执行到每一行时,内存的消耗及波动变化情况。

memory_profiler的使用方法超级简单,使用pip install memory_profiler完成安装后,只需要从memory_profiler导入profile并作为要分析的目标函数的装饰器即可,譬如下面这个例子:

demo.py

import numpy as np
from memory_profiler import profile@profile
def demo():a = np.random.rand(10000000)b = np.random.rand(10000000)a_ = a[a < b]b_ = b[a < b]del a, breturn a_, b_if __name__ == '__main__':demo()

接着在终端执行python demo.py,稍事等待后,就会看到打印出的分析结果报告(这里我是在jupyter lab里执行的终端命令):

7e795f8be0c682d3341a963d31e5599f.png

其中Line #列记录了分析的各行代码具体行位置,Mem usage列记录了当程序执行到该行时,当前进程占用内存的量,Increment记录了当前行相比上一行内存消耗的变化量,Occurrences记录了当前行的执行次数(循环、列表推导等代码行会记作多次),Line Contents列则记录了具体对应的行代码。

通过这样细致的内存分析结果,我们就能有的放矢地优化我们的代码啦~


本期分享结束,咱们下回见~👋

7466e17eb471acdaefa10c78e88dea51.gif

f933c70fef08918fba6ae39a0c3cc0d3.png

资讯

Meta开发AI语音助手,助力元宇宙

技术

Pandas重复数据处理大全

技术

5个短小精悍的Python趣味脚本

资讯

M2芯片终于要来了?全线换新

f0068559bf2f4c1bcf16b4a61c2e6924.png

分享

b75bef9b1fb1ba3d9c3c15e950cc2b28.png

点收藏

0407f1a2f9df75c0926ee47f8e83fb58.png

点点赞

8f567c25f6330dbe1d1d50cb2cc55b62.png

点在看

相关文章:

崛起于Springboot2.X之Mybatis-全注解方式操作Mysql(4)

为什么80%的码农都做不了架构师&#xff1f;>>> 1、使用注解方式对mysql增删改查,它很方便&#xff0c;不像一些逆向工程工具一样生成的都是乱七八糟&#xff0c;虽然很全的方法&#xff0c;完全手写sql 基于上一篇博客&#xff0c;我们只需要新建一个目录dao层&am…

hdu 1247

Problem DescriptionA hat’s word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.You are to find all the hat’s words in a dictionary.InputStandard input consists of a number of lowercase words, one per li…

php执行URL解析

方法一&#xff1a; $url"http://www.baidu.com";file_get_contents($url);方法二&#xff1a; // CURL 方法$url"http://www.baidu.com";$ch curl_init( );curl_setopt( $ch,CURLOPT_URL,$url );curl_setopt( $ch,CURLOPT_HEADER,0 );curl_setopt( $ch,…

Python 来分析,堪比“唐探系列”!B站9.5分好评如潮!

作者 | 菜鸟哥来源 | 菜鸟学PythonHello 小伙伴们&#xff0c;最近一部非常不错的悬疑侦探喜剧 电影&#xff0c;登上B站热榜&#xff01;菜鸟哥看完之后&#xff0c;大呼过瘾&#xff0c;简直就是一本非常棒的"剧本杀"&#xff01;演员都是实力派&#xff0c;演技超…

10进制转换为二十六进制字符串A-Z

def convert10to26(num): ...: 10进制转为26进制字母 A-Z, 输入参数10进制数num, 返回26位的字母A-Z 参数type&#xff1a; num: int return: str ...: ...: digit_list [] # 列表当栈使用&#xff0c;存储每次求余的结果 ...: while num !0: ...: digit_list.append(num%26)…

从hello world 说程序运行机制

http://www.cnblogs.com/yanlingyin/archive/2012/03/05/2379199.html 开篇 学习任何一门编程语言&#xff0c;都会从hello world 开始。对于一门从未接触过的语言&#xff0c;在短时间内我们都能用这种语言写出它的hello world。然而&#xff0c;对于hello world 这个简单程序…

爱耳日腾讯天籁行动再升级 助力100位青年听障人才打破“屏障”

公益是解决社会问题的重要切入口&#xff0c;科技是提升效率的强有力工具。当产业技术走入公益场景&#xff0c;科技也在发挥更大的社会价值。 《中国听力健康报告&#xff08;2021&#xff09;》显示&#xff0c;过度的噪音曝露&#xff0c;正让全球11亿年轻人面临听力受损的风…

IOS推送详解

为什么80%的码农都做不了架构师&#xff1f;>>> IOS推送详解 一.关于推送通知 推送通知&#xff0c;也被叫做远程通知&#xff0c;是在iOS 3.0以后被引入的功能。是当程序没有启动或不在前台运行时&#xff0c;告诉用户有新消息的一种途径&#xff0c;是从外部服务…

redis(4)

redis-cli -p 6380redis-cli -p 6379 info server | grep run_idpsync &#xff1f; -1

PHP也玩并发,巧用curl 并发减少后端访问时间

说明&#xff1a;本人源自3篇博文 http://blog.csdn.net/zuiaituantuan/article/details/7048782首先&#xff0c;先了解下 php中的curl多线程函数&#xff1a;# curl_multi_add_handle# curl_multi_close# curl_multi_exec# curl_multi_getcontent# curl_multi_info_read# cur…

ADSL自动更换IP地址源代码

有些网站限制IP地址&#xff0c;什么一个IP地址只能一次之类的。特别是投票网址&#xff0c;为了防止刷票&#xff0c;限制1个IP只允许投票一次&#xff01; 此程序采用Vs2010C#开发&#xff0c;提供全部源代码&#xff01;方便程序猿朋友二次开发&#xff01; 可以后台运行&am…

安全隐患:神经网络可以隐藏恶意软件

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 凭借数百万和数十亿的数值参数&#xff0c;深度学习模型可以做到很多的事情&#xff0c;例如&#xff0c;检测照片中的对象、识别语音、生成文本以及隐藏恶意软件。加州大学圣地亚哥分校和伊利诺伊大学…

实现一个完美符合Promise/A+规范的Promise

原文在我的博客中&#xff1a;原文地址 如果文章对您有帮助&#xff0c;您的star是对我最好的鼓励&#xff5e; 简要介绍&#xff1a;Promise允许我们通过链式调用的方式来解决“回调地狱”的问题&#xff0c;特别是在异步过程中&#xff0c;通过Promise可以保证代码的整洁性和…

用递归法计算斐波那契数列的第n项

斐波纳契数列&#xff08;Fibonacci Sequence&#xff09;又称黄金分割数列&#xff0c;指的是这样一个数列&#xff1a;1、1、2、3、5、8、13、21、……在数学上&#xff0c;斐波纳契数列以如下被以递归的方法定义&#xff1a;F00&#xff0c;F11&#xff0c;FnF(n-1)F(n-2)&a…

ArrayList的内存泄露

2019独角兽企业重金招聘Python工程师标准>>> 大家先运行下下面这段代码&#xff0c;看看结果 public class MemoryLeak {public static void main(String[] args) throws InterruptedException {new Thread(new Runnable() {Overridepublic void run() {for (int i …

给 Python 初学者推荐的 IDE 哦!

作者 | 黄伟呢来源 | 数据分析与统计学之美总有一些Python初学者&#xff0c;会问到&#xff1a;学习Python&#xff0c;应该用什么Python IDE&#xff1f;了解到他们使用Python做什么之后&#xff0c;我总结了这篇文章。IDE是集成开发环境的缩写&#xff0c;通俗地说&#xff…

django 2.0路由配置变化

urlpatterns变量​​的语法 urlpatterns应该是path()和/或re_path()实例的Python列表。 首先&#xff0c;Django会使用根路由解析模块(root URLconf)来解析路由。 通常&#xff0c;这是ROOT_URLCONF设置的值&#xff0c;但是如果传入的HttpRequest对象具有urlconf属性&#xff…

用ext_skel,实现一个PHP扩展,添加到PHP并调用

http://www.shinrun.com/PHP 一、开始之前 1. 系统环境&#xff1a;FreeBSD 8.22. AP环境&#xff1a;即已经装好的Apache2.2.17、PHP5.3.8环境3. PHP源码&#xff1a;下载稳定版本源码到当前用户的目录&#xff0c;如&#xff0c;下载PHP 5.3.8到/usr/home/abc下。4. 其它要求…

关于第三方IOS的checkBox框架的使用

关于第三方IOS的checkBox框架的使用 这个框架是从github上下载获取的&#xff1a;M13Checkbox。 只是github的源码项目工程比较久远&#xff0c;所以我把代码部分拷贝到XCode 7.1.0新建的项目里。 下面是展示效果 客户端源码使用参考&#xff1a; 1 #import "ViewControll…

20 个 Pandas 数据实战案例,干货多多

作者 | 俊欣来源 | 关于数据分析与可视化今天我们讲一下pandas当中的数据过滤内容&#xff0c;小编之前也写过也一篇相类似的文章&#xff0c;但是是基于文本数据的过滤&#xff0c;大家有兴趣也可以去查阅一下。下面小编会给出大概20个案例来详细说明数据过滤的方法&#xff0…

Python创建和访问字典

>>> dict1 {a:1,b:2,c:3,d:4}>>> print(a的值是:,dict1[a])a的值是: 1>>> dict4 dict(我 快乐, 你 伤悲)SyntaxError: keyword cant be an expression>>> dict4[你] 改变悲伤>>> dict4{我: 快乐, 你: 改变悲伤}>>>…

C语言九阴真经

发现记忆力越来越差&#xff0c;所以干脆搞这么一个东西&#xff0c;就是把C语言的最常用的语法汇编在一起&#xff0c;不断完善。这样以后只要经常把这个回顾一下就可以了。不然去翻书太多了。。。f.h#define Area 1000 struct student{char *last_name;int student_id;char …

听障人士的“有声桥梁”:百度智能云曦灵-AI手语平台发布

在刚刚落幕的冰雪赛事中&#xff0c;百度智能云曦灵为央视新闻打造的AI手语主播正式上岗&#xff0c;她以流畅、专业的手语服务实时传递冰雪运动的激情。然而在日常生活中&#xff0c;听障人士想要方便地获取信息仍面临着众多困难&#xff0c;无障碍窗口稀缺的问题亟待解决。 …

模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove

模拟实现&#xff1a;strstrstrcpystrlenstrcatstrcmpmemcpymemmove1 strstr 字符串中查找子字符串char * my_strstr(const char *dest, const char *src) {const char *ret dest;const char *p dest;const char *q src;assert(dest ! NULL && src ! NULL); while(r…

【Spring Security】五、自定义过滤器

在之前的几篇security教程中&#xff0c;资源和所对应的权限都是在xml中进行配置的&#xff0c;也就在http标签中配置intercept-url&#xff0c;试想要是配置的对象不多&#xff0c;那还好&#xff0c;但是平常实际开发中都往往是非常多的资源和权限对应&#xff0c;而且写在配…

一星期没完成Ansible任务

这个星期&#xff0c;前4天&#xff0c;我在看Nginx&#xff0c;没有深入Ansible。 这几天我有思考做Ansible的哪个方面&#xff0c;现在我用Ansible可以用&#xff0c;但是没有生产环境&#xff0c;我对基础部分热情不是特别大&#xff0c;应该是基础部分大家在弄&#xff0c;…

Python 批量处理 Excel 数据后,导入 SQL Server

作者 | 老表来源 | 简说Python1、前言2、开始动手动脑2.1 拆解明确需求2.2 安装第三方包2.3 读取excel数据2.4 特殊数据数据处理2.5 其他需求2.6 完整调用代码1、前言今天教大家一个需求&#xff1a;有很多Excel&#xff0c;需要批量处理&#xff0c;然后存入不同的数据表中。2…

最经典的计算机网络新书推荐--计算机网络(第5版)Tanenbaum著中文版上市

作者&#xff1a;Tanenbaum是全球最著名的计算机科学家。linux之父Linus当年就是参考Tanenbaum写的MINIX&#xff01; Tanenbaum《计算机网络(第5版) 》《现代操作系统(第3版) 》《操作系统设计与实现(第3版) 》《分布式系统原理与范型(第2版) 》《计算机组成结构化方法&#x…

elasticsearch简单操作(二)

让我们建立一个员工目录&#xff0c;假设我们刚好在Megacorp工作&#xff0c;这时人力资源部门出于某种目的需要让我们创建一个员工目录&#xff0c;这个目录用于促进人文关怀和用于实时协同工作&#xff0c;所以它有以下不同的需求&#xff1a;1、数据能够包含多个值的标签、数…

苹果放大招?「廉价版」5G iPhone 将揭晓,M2芯片来袭?

整理 | 张洁来源 | CSDN3 月 2 日&#xff0c;苹果公司正式宣布将于北京时间 3 月 9 日凌晨 2 点举办 2022 年的首场活动&#xff0c;主题为“peek performance&#xff08;高能传送&#xff09;”。与去年一样&#xff0c;苹果 2022 年的第一场活动将继续以线上的方式进行。活…