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运行结果:

Python利用memory_profiler查看内存占用情况

方法2运行结果:

Python利用memory_profiler查看内存占用情况

补充

下面小编为大家整理了一下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,memory,profiler,内存,占用
0
投稿

猜你喜欢

  • python 偷懒技巧——使用 keyboard 录制键盘事件

    2023-02-08 18:00:03
  • Python基于Tkinter开发一个爬取B站直播弹幕的工具

    2023-06-21 21:53:12
  • 如何查询Top N及Top(M―N)记录?

    2009-11-11 20:03:00
  • Python self参数详细介绍

    2021-03-02 14:22:29
  • mysql 忘记root密码

    2010-12-14 14:50:00
  • BootStrap的select2既可以查询又可以输入的实现代码

    2024-04-28 10:18:41
  • JavaScript遍历求解数独问题的主要思路小结

    2023-10-13 16:41:14
  • mysql实现多表关联统计(子查询统计)示例

    2024-01-19 18:53:26
  • python如何代码集体右移

    2023-07-08 01:34:28
  • 详解Golang 与python中的字符串反转

    2021-08-01 23:31:08
  • PyQt5主窗口动态加载Widget实例代码

    2023-06-04 21:20:32
  • python+opencv边缘提取与各函数参数解析

    2023-12-24 11:17:54
  • Centos7 Python3下安装scrapy的详细步骤

    2021-12-03 10:59:26
  • asp生成带日期的随机数

    2008-09-03 13:13:00
  • 在ORACLE移动数据库文件

    2024-01-17 02:44:36
  • js和php如何获取当前url的内容

    2023-11-14 10:09:12
  • javascript创建数组的最简代码

    2013-09-01 21:43:04
  • js实现调用网络摄像头及常见错误处理

    2024-05-11 09:32:30
  • 教你使用vue-autofit 一行代码搞定自适应可视化大屏

    2024-05-09 09:05:53
  • python实现监控指定进程的cpu和内存使用率

    2023-08-23 02:21:17
  • asp之家 网络编程 m.aspxhome.com