Python利用memory_profiler查看内存占用情况
作者:玩转测试开发 发布时间:2022-05-24 08:55:29
简介
memory_profiler是第三方模块,用于监视进程的内存消耗以及python程序内存消耗的逐行分析。它是一个纯python模块,依赖于psutil模块。
安装
pip install memory_profiler
使用方法
1、通过装饰器运行
@profile
def func1():
2、通过命令行运行
python -m memory_profiler test_code.py
案例源码:
# -*- coding: utf-8 -*-
# time: 2022/6/11 21:17
# file: test_code.py
# 公众号: 玩转测试开发
from memory_profiler import profile
loop = 50000
@profile
def func1():
s1 = [i for i in range(loop)]
s2 = []
for i in range(loop):
if i & 1 == 1:
s2.append(i)
result = sum(s1) + sum(s2)
del s1
del s2
return result
if __name__ == '__main__':
result = func1()
print(result)
方法1运行结果:
方法2运行结果:
补充
下面小编为大家整理了一下memory_profiler的一些使用
1、直接打印结果到终端上
#coding:utf8
from memory_profiler import profile
@profile
def test1():
c=list()
for item in range(10000):
c.append(item)
if __name__=='__main__':
test1()
结果如下
Filename: D:/python/test_sip/test_check_es.py
Line # Mem usage Increment Line Contents
================================================
474 16.6 MiB 16.6 MiB @profile
475 def test1():
476 16.6 MiB 0.0 MiB c=list()
477 17.0 MiB 0.0 MiB for item in range(10000):
478 17.0 MiB 0.1 MiB c.append(item)
2、定义输出到文件,定义结果保留的小数位
#coding:utf8
from memory_profiler import profile
@profile(precision=4,stream=open('memory_profiler.log','w+'))
def test1():
c=list()
for item in range(10000):
c.append(item)
if __name__=='__main__':
test1()
结果如下
Filename: D:/python/test_sip/test_check_es.py
Line # Mem usage Increment Line Contents
================================================
474 16.5391 MiB 16.5391 MiB @profile(precision=4,stream=open('memory_profiler.log','w+'))
475 def test1():
476 16.5430 MiB 0.0039 MiB c=list()
477 16.8906 MiB 0.0039 MiB for item in range(10000):
478 16.8906 MiB 0.0391 MiB c.append(item)
来源:https://blog.csdn.net/hzblucky1314/article/details/125494000
猜你喜欢
- python 读写中文json的实例详解读写中文json想要 读写中文json ,可以使用python中的 json 库可以对j
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 4 - Functions函数和MooTools
- 使用Nodejs的开发者愈来越多,基于Nodejs的后台开发也多了起来,像短信验证码、短信群发、国际短信这些需求,完全可以采用第三方接口来实
- PyCharm IDE 窗口布局PyCharm 调试代码实例(这里我以自己的代码为例)__author__ =&nbs
- 这篇文章主要介绍了Python如何把多个PDF文件合并,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 将 numpy 数组存入文件,有多种文件类型可供选择,对应地就有不同的方法来读写。下面我将介绍读写 numpy 的三类文件:txt 或者 c
- 一、用属性替代 getter 或 setter 方法以下代码中包含手动实现的 getter(get_ohms) 和 setter(set_o
- Python2默认是不支持中文的,一般我们在程序的开头加上#-*-coding:utf-8-*-来解决这个问题,但是在我用open()方法打
- 过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束第一步:建立
- 最近和一程序员合作项目。弄的我头都大了~埋怨我的CSS命名看不懂~得按照他的来。结果我打开他的页面,看了看,从头第一个开始就是content
- 作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python来创建一个区块链。对数字货币的崛起感到新奇的我们,并且想知道其背后
- 日常小程序经常需要分页查询的功能,本篇我们讲解一下低代码中如何实现分页查询的功能。要自己开发分页功能,可以先参考官方的方法分页查询我们一般是
- 今天我们说一下Redis中最后一个数据类型 “有序集合类型”,回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这些代码
- 什么是中间件我们从一个简单的例子开始。高流量的站点通常需要将Django部署在负载平衡proxy之后。 这种方式将带来一些复杂性,其一就是每
- 一、Python pass语句在实际开发中,有时候我们会先搭建起程序的整体逻辑结构,但是暂时不去实现某些细节,而是在这些地方加一些注释,方面
- 本文以实例形式讲述了Python中切片操作的用法,分享给大家供大家参考借鉴,具体如下:取一个list或tuple的部分元素是非常常见的操作。
- 最近 UCDChina 以“注意界面上的文字”为主题写了一系列的文章,使我在界面文字上的使用受益匪浅。之后,我对按钮上的内容的表现也做了一些
- Windows环境下python的安装与使用一、python如何运行程序首先说一下python解释器,它是一种让其他程序运行起来的程序。当你
- pandas 对于数据分析的人员来说都是必须熟悉的第三方库,pandas 在科学计算上有很大的优势,特别是对于数据分析人员来说,相当的重要。
- 前言一年一度的虐狗节终于过去了,朋友圈各种晒,晒自拍,晒娃,晒美食,秀恩爱的。程序员在晒什么,程序员在加班。但是礼物还是少不了的,送什么好?