当前位置:首页 » 编程语言 » python读取内存

python读取内存

发布时间: 2025-07-17 08:50:25

① 性能测试,python 内存分析工具 -memray

Memray是彭博社开发的一款开源内存剖析工具,上线一个多月即获得8.4k星,因其在Python内存分析领域的出色表现,被誉为明星项目。Memray能够跟踪Python代码、本地扩展模块及Python解释器的内存分配情况,并生成多种报告,帮助开发者深入分析Python代码的内存使用状况。


Memray的安装和使用相对简单,只需运行命令:python3 -m memray --help以获取详细帮助信息。


在使用Memray时,可以通过以下命令执行分析:memray-py文件名.进程id.bin,进而将分析结果转换为HTML格式的火焰图报告,直观展示程序调用过程中的内存分配情况,宽度表示函数占用内存的多少。


值得注意的是,使用火焰图报告时,与不加参数的分析结果看似相似,实际上大相径庭。火焰图深入追踪内存分配,有助于在Python内存溢出时快速定位问题,但同时会增加数据收集速度和文件大小。


Memray提供多种报告形式,包括:



  • 默认排序:根据Total memory从大到小排列。

  • 按私有内存排序:使用"O"参数,按内存对象的私有内存大小从大到小排序。

  • 按内存分配次数排序:使用"A"参数,按内存分配次数从高到底排序。


借助这些统计信息,开发者可以迅速定位占用内存大的对象和频繁分配内存的对象,从而重点分析和优化这些关键部分。


Memray还支持多种报告生成命令,包括:



  • 火焰图报告:使用flamegraph命令生成。

  • 表格报告:使用table命令生成。

  • 树形报告:使用tree命令生成。

  • 概要报告:使用summary命令生成。

  • 详细统计报告:使用stats命令生成。


通过灵活使用这些报告类型,开发者可以全面了解Python程序的内存使用情况,有效提升代码性能和稳定性。

② python 一个文件太大+内存装不下+怎么读取 mongo

Python 环境下文件的读取问题,请参见拙文Python 基础 —— 文件

这是一道着名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件。

1. read() 接口的问题

f = open(filename, 'rb')
f.read()12

我们来读取 1 个 nginx 的日至文件,规模为 3Gb 大小。read() 方法执行的操作,是一次性全部读入内存,显然会造成:

MemoryError...12

也即会发生内存溢出。

2. 解决方案:转换接口

  • (1)readlines() :读取全部的行,构成一个 list,实践表明还是会造成内存的问题;

    for line in f.reanlines(): ...
  • 1

  • 2

  • (2)readline():每次读取一行,

    while True:
    line = f.readline() if not line: break
  • 1

  • 2

  • 3

  • 4

  • (3)read(1024):重载,指定每次读取的长度

    while True: block = f.read(1024) if not block: break
  • 1

  • 2

  • 3

  • 4

  • 3. 真正 Pythonic 的方法

    真正 Pythonci 的方法,使用 with 结构:

  • with open(filename, 'rb') as f: for line in f:

  • <do something with the line>123

  • 对可迭代对象 f,进行迭代遍历:for line in f,会自动地使用缓冲IO(buffered IO)以及内存管理,而不必担心任何大文件的问题。

    There should be one – and preferably only one – obvious way to do it.

热点内容
c语言字符串最后一个字符串 发布:2025-07-17 15:09:23 浏览:413
python每隔 发布:2025-07-17 15:03:08 浏览:276
ftp命令passive 发布:2025-07-17 15:02:51 浏览:676
迅雷下载的缓存设置 发布:2025-07-17 14:59:54 浏览:958
网盘油猴脚本 发布:2025-07-17 14:55:32 浏览:723
解压游戏解压馆可用 发布:2025-07-17 14:48:38 浏览:753
手机mq文件夹是什么 发布:2025-07-17 14:47:42 浏览:182
python图片像素 发布:2025-07-17 14:38:06 浏览:781
安卓7bin文件怎么打开 发布:2025-07-17 14:36:39 浏览:439
手机密码忘记了如何快速开锁 发布:2025-07-17 14:35:51 浏览:71